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["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 = [
|
||||
" ".join(str(name) for name in column).strip()
|
||||
if isinstance(column, tuple)
|
||||
|
|
|
@ -96,10 +96,14 @@ def get_chart_dataframe(
|
|||
|
||||
result = simplejson.loads(content.decode("utf-8"))
|
||||
df = pd.DataFrame.from_dict(result["result"][0]["data"])
|
||||
|
||||
# rebuild hierarchical columns and index
|
||||
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(
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue