我正在使用Pandas操作一个包含多行和多列的csv文件,如下所示
Fullname Amount Date Zip State .....
John Joe 1 1/10/1900 55555 Confusion
Betty White 5 . . Alaska
Bruce Wayne 10 . . Frustration
John Joe 20 . . .
Betty White 25 . . .
我想创建一个名为Total
的新列,其中包含每个人的总金额。(由Fullname
和Zip
标识)。我很难找到正确的解决方案。
让我们把我的csv import命名为csvfile。
import Pandas
df = pandas.read_csv('csvfile.csv', header = 0)
df.sort(['fullname'])
我想我必须使用iterrows来做我想作为一个对象做的事情。删除重复项的问题是我会丢失数量或者数量可能不同。
2条答案
按热度按时间zf2sa74q1#
我想你想要这个:
所以
groupby
将按Fullname
和zip
列分组,正如你所说的,然后我们在Amount
列上调用transform
,并通过传入字符串sum
来计算总量,这将返回一个索引与原始df
对齐的序列,然后你可以删除重复的序列。yizd12fk2#
请考虑使用以下方法之一
这三个方法都将结果存储在
Amount
列中。如果你想从其他列中保留一个值,你可以使用
agg()
,它接受轴标签的dict-〉函数,指定应该对每一列执行什么操作。