diff --git a/superset/utils/pandas_postprocessing/pivot.py b/superset/utils/pandas_postprocessing/pivot.py index e18d58e28e4e..4083847fffcb 100644 --- a/superset/utils/pandas_postprocessing/pivot.py +++ b/superset/utils/pandas_postprocessing/pivot.py @@ -87,7 +87,7 @@ def pivot( # pylint: disable=too-many-arguments,too-many-locals if not drop_missing_columns and columns: for row in df[columns].itertuples(): for metric in aggfunc.keys(): - series_set.add(str(tuple([metric]) + tuple(row[1:]))) + series_set.add(tuple([metric]) + tuple(row[1:])) df = df.pivot_table( values=aggfunc.keys(), @@ -101,10 +101,7 @@ def pivot( # pylint: disable=too-many-arguments,too-many-locals ) if not drop_missing_columns and len(series_set) > 0 and not df.empty: - for col in df.columns: - series = str(col) - if series not in series_set: - df = df.drop(col, axis=PandasAxis.COLUMN) + df = df.drop(df.columns.difference(series_set), axis=PandasAxis.COLUMN) if combine_value_with_metric: df = df.stack(0).unstack()