This is an automated email from the ASF dual-hosted git repository.
beto pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 542b864 fix: pivot col names in post_process (#16262)
542b864 is described below
commit 542b864e617bf46beeb7db892d451fd59268056e
Author: Beto Dealmeida <[email protected]>
AuthorDate: Mon Aug 16 08:16:42 2021 -0700
fix: pivot col names in post_process (#16262)
---
superset/charts/post_processing.py | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/superset/charts/post_processing.py
b/superset/charts/post_processing.py
index b80487e..b67d870 100644
--- a/superset/charts/post_processing.py
+++ b/superset/charts/post_processing.py
@@ -72,15 +72,15 @@ def pivot_table(df: pd.DataFrame, form_data: Dict[str,
Any]) -> pd.DataFrame:
margins=form_data.get("pivot_margins"),
)
- # Re-order the columns adhering to the metric ordering.
- df = df[metrics]
-
# Display metrics side by side with each column
if form_data.get("combine_metric"):
df = df.stack(0).unstack().reindex(level=-1, columns=metrics)
# flatten column names
- df.columns = [" ".join(column) for column in df.columns]
+ df.columns = [
+ " ".join(str(name) for name in column) if isinstance(column, tuple)
else column
+ for column in df.columns
+ ]
return df
@@ -144,9 +144,9 @@ def pivot_table_v2( # pylint: disable=too-many-branches
# The pandas `pivot_table` method either brings both row/column
# totals, or none at all. We pass `margin=True` to get both, and
# remove any dimension that was not requests.
- if not form_data.get("rowTotals"):
+ if columns and not form_data.get("rowTotals"):
df.drop(df.columns[len(df.columns) - 1], axis=1, inplace=True)
- if not form_data.get("colTotals"):
+ if groupby and not form_data.get("colTotals"):
df = df[:-1]
# Compute fractions, if needed. If `colTotals` or `rowTotals` are
@@ -169,15 +169,15 @@ def pivot_table_v2( # pylint: disable=too-many-branches
if form_data.get("rowTotals"):
df *= 2
- # Re-order the columns adhering to the metric ordering.
- df = df[metrics]
-
# Display metrics side by side with each column
if form_data.get("combineMetric"):
df = df.stack(0).unstack().reindex(level=-1, columns=metrics)
# flatten column names
- df.columns = [" ".join(str(name) for name in column) for column in
df.columns]
+ df.columns = [
+ " ".join(str(name) for name in column) if isinstance(column, tuple)
else column
+ for column in df.columns
+ ]
return df