【发布时间】:2020-11-27 12:08:50
【问题描述】:
我想根据 Region 列和 Inhabitants 列组合以下数据框 df。另外,我想总结一下Area的值。
import pandas as pd
df = pd.DataFrame({'Region': ['Region1', 'Region1', 'Region1', 'Region2', 'Region2', 'Region2', 'Region3', 'Region3', 'Region4', 'Region4'], 'Inhabitants': [True, False, True, True, False, True, True, True, False, False], 'Area': [60, 20, 20, 60, 30, 10, 50, 50, 50, 50]})
print(df)
Region Inhabitants Area
0 Region1 True 60
1 Region1 False 20
2 Region1 True 20
3 Region2 True 60
4 Region2 False 30
5 Region2 True 10
6 Region3 True 50
7 Region3 True 50
8 Region4 False 50
9 Region4 False 50
这适用于这段代码:
df = df.groupby(['Region', 'Inhabitants'], as_index=False)['Area'].sum()
print(df)
Region Inhabitants Area
0 Region1 False 20
1 Region1 True 80
2 Region2 False 30
3 Region2 True 70
4 Region3 True 100
5 Region4 False 100
最后我想确定每个区域的真实面积之和是否> = 80。这应该在添加的列Region_ok中说明为True,如果每个区域的真实面积> = 80或False,如果不是。这又应该按地区分组。结果应如下所示:
Region Region_ok
0 Region1 True
1 Region2 False
2 Region3 True
3 Region4 False
我用 groupby 尝试了几件事,但找不到合适的解决方案。
【问题讨论】:
标签: python pandas dataframe group-by