展平嵌套的pandas数据帧列

时间:2018-03-01 22:02:57

标签: python pandas dataframe multi-index

经过一些聚合后,我的数据框看起来像这样

  A     B
        B_min   B_max
0 11     3       6       
1 22     1       2
2 33     4       4

如何在不进行任何嵌套的情况下将列设为AB_minB_max?简单而标准。我尝试了reindex_axix()unstack(),但没有任何效果。

1 个答案:

答案 0 :(得分:1)

这是一种方法,但我希望有一种内置的方法来做到这一点。

import pandas as pd

df = pd.DataFrame({'A': [11, 11, 22, 22, 33, 33],
                   'B': [3, 6, 1, 2, 4, 4]})

g = df.groupby('A', as_index=False).agg({'B': ['min', 'max']})

g.columns = ['_'.join(col).strip() if col[1] else col[0] for col in g.columns.values]

#     A  B_min  B_max
# 0  11      3      6
# 1  22      1      2
# 2  33      4      4