熊猫groupby agg返回的内容不是数据框。如何评估数据框?

时间:2020-03-27 20:33:11

标签: python pandas

我有一个数据框。

df = ...
gb = df.groupby(['A','B','C'],axis=0)

new_df = gb.agg(['sum','max']) 


def func(expected_list: List[str]):
    ...
    # fails if a list of strings is not passed

func(list(new_df.columns))

事情失败了。

new_df.columns yields: [ ('A','max'), ('A','sum'), ('B','max'), ... ]

如何将汇总的groupby调用转换为一个数据列,该数据框按预期返回一个列Series和一个对列的调用,而不是此tuple-拟张量?

1 个答案:

答案 0 :(得分:0)

因此,事实证明,返回的索引是称为MultiIndex的另一种类型,使得返回的agg的类型不是DataFrame(Index)而是伪造的DataFrame(MultiIndex) -code,然后您可以通过以下过程为所有下游代码返回Dataframe(Index),该行为具有DataFrame输出的read_csv的预期行为:

result.columns = [re.sub(r'_$','',-'_'.join(col)) for col in result.columns]