我有一个Pandas Dataframe:
fruits = ['apple', 'apple', 'banana', 'banana', 'orange']
quantities = [10, 5, 20, 12, 25]
products = pd.DataFrame({'Fruits': fruits, 'Amount': quantities})
我想要做的是汇总'Fruits'
列,以便唯一的条目是
'apple', 'banana', and 'orange'
但他们的数量'加起来,即
'apple'=15, 'banana'=32, and 'orange'=25.
这将是新的数据帧。
有什么想法吗?
答案 0 :(得分:3)
您可以使用Groupby:
In [4]: products
Out[4]:
Amount Fruits
0 10 apple
1 5 apple
2 20 banana
3 12 banana
4 25 orange
[5 rows x 2 columns]
In [5]: products.groupby('Fruits').sum()
Out[5]:
Amount
Fruits
apple 15
banana 32
orange 25
[3 rows x 1 columns]
答案 1 :(得分:1)
您应该考虑按如下方式制作字典:
my_dict = {}
for i,item in enumerate(fruits):
if item in my_dict:
my_dict[item] += quantities[i]
else:
my_dict[item] = quantities[i]
然后你就可以做到:
products = pd.DataFrame({'Fruits': my_dict.keys(), 'Amount': my_dict.values()})
我希望有所帮助。