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
 

Reply via email to