如何根据组求和一个值?
How to sum a value based on group?
我想弄清楚如何为我的数据框中的每个地理位置计算从排名 5 到最低排名(即 5-1,000)的值。
df = df.set_index('geography')
df["Rank"] = df.groupby("geography")["value_to_sum"].rank("dense", ascending=True)
df = df.groupby('geography').iloc('Rank')[5, :]['value_to_sum'].sum(axis=1)
但是,我收到错误消息:'DataFrameGroupBy' 对象没有属性 'iloc'
我是不是用错了iloc?
IIUC,尝试:
>>> df[df.groupby("geography")["value_to_sum"].rank("dense").lt(5)].sum(axis=1)
我想弄清楚如何为我的数据框中的每个地理位置计算从排名 5 到最低排名(即 5-1,000)的值。
df = df.set_index('geography')
df["Rank"] = df.groupby("geography")["value_to_sum"].rank("dense", ascending=True)
df = df.groupby('geography').iloc('Rank')[5, :]['value_to_sum'].sum(axis=1)
但是,我收到错误消息:'DataFrameGroupBy' 对象没有属性 'iloc'
我是不是用错了iloc?
IIUC,尝试:
>>> df[df.groupby("geography")["value_to_sum"].rank("dense").lt(5)].sum(axis=1)