展平嵌套的pandas数据帧列

问题描述 投票:1回答:1

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

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

如何使列成为AB_minB_max,没有任何嵌套?简单而标准。我尝试过reindex_axix()unstack(),但没有任何效果。

python pandas dataframe multi-index
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.