I am trying to figure out how to sum a value from rank 5 to the LOWEST rank (I.E. 5-1,000) for each geography in my dataframe.
JavaScript
x
6
1
df = df.set_index('geography')
2
3
df["Rank"] = df.groupby("geography")["value_to_sum"].rank("dense", ascending=True)
4
5
df = df.groupby('geography').iloc('Rank')[5, :]['value_to_sum'].sum(axis=1)
6
However, I am getting the error: ‘DataFrameGroupBy’ object has no attribute ‘iloc’
Am I using iloc incorrectly?
Advertisement
Answer
IIUC, try:
JavaScript
1
2
1
>>> df[df.groupby("geography")["value_to_sum"].rank("dense").lt(5)].sum(axis=1)
2