假设我们有一个熊猫数据框类似如下:如何根据Pandas DataFrame中其他列的值仅累加列的某些元素?
df=pd.DataFrame({'name':['Ind','Chn','SG','US','SG','US','Ind','Chn','Fra','Fra'],'a':[5,6,3,4,7,12,66,78,65,100]})
我想总结列的“A”为列“名”的每个不同的值的值。
我试过这段代码:
for i in df['name'].unique(): df['tot']=df[(df.name==i)]['a'].sum()
在出现的新列,“TOT”列仅包含所有行的“名字”,即(仅适用于“法兰克福机场”)去年不同的价值的总和而不是[Ind,US,Fra等]中的每一个的单独值。我希望在新列(tot)中为'name'列的每个唯一值创建一个单元格,并最终希望通过每个唯一值的总和对整个日期框架'df'进行排序。
我使用的字典试过,
dc={}
for i in df['name'].unique():
dc[i]=dc.get(i,0)+(df[(df.name==i)]['a'].sum())
我得到期望的结果,虽然在词典中,所以我不知道如何排序DF从这里基于字典“DC”的值。
{ '工业':71, 'CHN':84, 'SG':10, 'US':16, '弗拉':165}
有谁请解释的过程中以尽可能多的方式锻炼这种情景?处理大量数据时,哪种方法最有效?谢谢!
编辑:我的预期输出只是将数据框df按新列'tot'的值排序。或者像查找与'tot'列中的最大值或最小值关联的行。
我只是学习如何通过其他columns..like找到与列“TOT”最大值或最小值相关联行的值数据帧DF排序。 – aspiringroboticist