【发布时间】:2022-01-21 05:17:28
【问题描述】:
我有一个如下的df:
State Country Pop GDP
1 MD USA 433100 1222
2 TX USA 99934123 324234
3 B.C. MEX 324599 5343
4 OAX MEX 43322 986
5 BC CAN 3431 643
6 NS CAN 8749 3535
我想按国家/地区分组并找到最大 GDP 和最小 GDP,并返回它以及新的列名,使其看起来像这样:
PoorState GDP Pop RichState GDP Pop
USA MD 1222 433100 TX 324234 99934123
MEX OAX 986 43322 B.C. 5343 324599
...
我已经试过这个来获得每个状态的最小值和最大值:
df.groupby('state').agg({'GDP':min, 'GDP':max})[['GDP','GDP']].reset_index()
但只有最小值有效,而最大值无效。
State GDP GDP
MD 1222 1222
OAX 986 986
--
我知道我可以这样做来设置索引:
newdf = df.set_index('region')
我想我正在尝试弄清楚我是否可以在一行中完成所有这些操作。
【问题讨论】:
标签: python pandas dataframe numpy