【发布时间】:2022-01-20 22:22:16
【问题描述】:
我有一个表单的数据框:
df = [["john","2019","30.2"] , ["john","2019","40"] , ["john","2020","50.3"] ,
["amy","2019","60"] , ["amy","2019","20"] , ["amy","2020","40.1"]]
我想要的结果是最后一个索引的多条件总和列表,而前两个索引相等:
> [["john", "2019", "70.2"] , ["john","2020","50.3"] , ["amy","2019","80"] , ["amy","2020","40.1"]]
我尝试做的是一个 for 循环,它检查每个条件的相等性,然后总结最后一个索引,如果条件为真 - 这是某种伪代码:
for i in df[i]:
if df[i][0] == df[i+1][0] and df[i][1] == df[i+1][1]: #if both conditions are true
sum1 = sum(float(df[i][2]))
lst = []
lst.append(df[i][0])
lst.append(df[i][1])
lst.append(str(sum1))
编辑:希望有一个不使用包的解决方案。
【问题讨论】:
-
还有数据吗?如果是,它们的格式是否相同——“姓名、年份、第三个索引”?
标签: python pandas dataframe loops