【发布时间】:2019-02-17 20:21:45
【问题描述】:
我正在编制一份按县划分的前 3 种作物的表格。一些县的作物品种相同,顺序相同。其他县有相同的作物品种,但顺序不同。
df1 = pd.DataFrame( {
"County" : ["Harney", "Baker", "Wheeler", "Hood River", "Wasco" , "Morrow","Union","Lake"] ,
"Crop1" : ["grain", "melons", "melons", "apples", "pears", "raddish","pears","pears"],
"Crop2" : ["melons","grain","grain","melons","carrots","pears","carrots","carrots"],
"Crop3": ["apples","apples","apples","grain","raddish","carrots","raddish","raddish"],
"Total_pop": [2000,1500,3000,1500,2000,2500,2700,2000]} )
我可以对 Crop1、Crop2 和 Crop3 进行 groupby 并得到 total_pop 的总和:
df1_grouped=df1.groupby(['Crop1',"Crop2","Crop3"])['Total_pop'].sum().reset_index()
这给了我特定作物组合的总数:
df1_grouped
apples melons grain 1500
grain melons apples 2000
melons grain apples 4500
pears carrots raddish 6700
raddish pears carrots 2500
不过,我想要的是获得不同作物组合的总人口——无论列出的作物是作物 1、作物 2 还是作物 3。期望的结果是这样的:
apples melons grain 8000
pears carrots raddish 9200
感谢您的指导。
【问题讨论】:
标签: python pandas dataframe pandas-groupby itertools