mirror of https://github.com/apache/superset.git
fix: columns/index rebuild (#16355)
This commit is contained in:
parent
86f4e691d4
commit
37f09bd296
|
@ -296,7 +296,9 @@ def apply_post_process(
|
||||||
query["coltypes"] = extract_dataframe_dtypes(processed_df)
|
query["coltypes"] = extract_dataframe_dtypes(processed_df)
|
||||||
query["rowcount"] = len(processed_df.index)
|
query["rowcount"] = len(processed_df.index)
|
||||||
|
|
||||||
# flatten columns/index so we can encode data as JSON
|
# Flatten hierarchical columns/index since they are represented as
|
||||||
|
# `Tuple[str]`. Otherwise encoding to JSON later will fail because
|
||||||
|
# maps cannot have tuples as their keys in JSON.
|
||||||
processed_df.columns = [
|
processed_df.columns = [
|
||||||
" ".join(str(name) for name in column).strip()
|
" ".join(str(name) for name in column).strip()
|
||||||
if isinstance(column, tuple)
|
if isinstance(column, tuple)
|
||||||
|
|
|
@ -96,10 +96,14 @@ def get_chart_dataframe(
|
||||||
|
|
||||||
result = simplejson.loads(content.decode("utf-8"))
|
result = simplejson.loads(content.decode("utf-8"))
|
||||||
df = pd.DataFrame.from_dict(result["result"][0]["data"])
|
df = pd.DataFrame.from_dict(result["result"][0]["data"])
|
||||||
|
|
||||||
|
# rebuild hierarchical columns and index
|
||||||
df.columns = pd.MultiIndex.from_tuples(
|
df.columns = pd.MultiIndex.from_tuples(
|
||||||
tuple(colname) for colname in result["result"][0]["colnames"]
|
tuple(colname) if isinstance(colname, list) else (colname,)
|
||||||
|
for colname in result["result"][0]["colnames"]
|
||||||
)
|
)
|
||||||
df.index = pd.MultiIndex.from_tuples(
|
df.index = pd.MultiIndex.from_tuples(
|
||||||
tuple(indexname) for indexname in result["result"][0]["indexnames"]
|
tuple(indexname) if isinstance(indexname, list) else (indexname,)
|
||||||
|
for indexname in result["result"][0]["indexnames"]
|
||||||
)
|
)
|
||||||
return df
|
return df
|
||||||
|
|
Loading…
Reference in New Issue