【发布时间】:2021-11-05 16:03:53
【问题描述】:
我在 Pandas 中有一个数据框,它显示了一个城市/州的男性百分比。数据框df 如下所示(注意这不是我的实际使用/数据,但我的数据类型相似)
STATE CITY PERC_MEN
ALABAMA ABBEVILLE 41.3%
ALABAMA ADAMSVILLE 53.5%
....
WYOMING WRIGHT 46.6%
每个州/男性组合的百分比将恰好返回 1 个值。
如何显示给定州的城市/人口值?我的代码如下所示(我需要第一行分组STATE,因为我对数据做了其他事情)
for state, state_df in df.groupby(by=['STATE']):
print(state_df.groupby(by=['CITY'])['PERC_MEN'])
但是这会打印<pandas.core.groupby.generic.SeriesGroupBy object at 0xXXXXXXX>
通常对于 groupby,我使用像 mean() 或 sum() 这样的聚合,但有没有办法只返回值?
【问题讨论】:
-
必须有更好的方法来做到这一点,但您可以使用
state_df.groupby(by=['CITY'])['PERC_MEN'].apply(lambda x: x)原样返回值。
标签: python pandas pandas-groupby aggregation