【发布时间】:2017-09-30 09:07:36
【问题描述】:
我有一个 3 列的数据框,
ID col1 col2
A1 1 12
A1 3 10
A1 4 16
........
A9 9 18
A9 7 11
A9 8 15
我想创建一个带有列的新数据框:
ID col1_min, col1_max, col2_min, col2_max.
A1 1 4 10 16
...........
A9 7 9 11 18
我可以通过使用 groupby 来做到这一点
col1_min = df.groupby(['ID'])['col1'].min()
col1_max = df.groupby(['ID'])['col1'].max()
col2_min = df.groupby(['ID'])['col2'].min()
col2_max = df.groupby(['ID'])['col2'].max()
df2 = pd.DataFrame({'col1_min':col1_min, 'col1_max':col1_max, 'col2_min':col2_min, 'col2_max':col2_max})
一定有更好更优雅的方式(一个班轮)?
非常感谢。
【问题讨论】: