【发布时间】:2017-08-09 05:08:39
【问题描述】:
我有以下数据框,从 csv 读入 pandas。
Fruit Apple Pear
Date
2016-03-30 Pear 1
2016-04-14 Pear 1
2016-04-14 Pear 1
2016-05-09 Apple 1
2016-05-18 Apple 1
2016-06-24 Pear 1
2016-06-27 Apple 1
2016-06-27 Pear 1
2016-06-28 Apple 1
2016-06-28 Apple 1
2016-07-05 Pear 1
我希望它看起来像这样。它对重复的行求和,然后删除重复的行。 Fruit 列中的值此时无关紧要。我稍后会删除该列。
Fruit Apple Pear
Date
2016-03-30 Pear 1
2016-04-14 Pear 2
2016-05-09 Apple 1
2016-05-18 Apple 1
2016-06-24 Pear 1
2016-06-27 Apple 1 1
2016-06-28 Apple 2
2016-06-28 Apple 1
2016-07-05 Pear 1
我尝试使用 groupby,但它用 1 填充了 Apple/Pear 列。我尝试了一个 for 循环,如果下一个日期索引与当前日期索引相同,它将 += 1 到相应的 Apple/Pear 列。那失败了,因为列的类型,以及我更改列类型的尝试也失败了。用我的头撞这个,我无法得到它。
我能做的一件事是用df = df.reset_index().drop_duplicates('Date',keep='last').set_index('Date')删除重复项
【问题讨论】:
-
阅读this 了解如何提出一个好的熊猫问题可能会有所帮助。您发布的帧有些难以解析,不清楚 2016-03-30/Apple 的值是 0 还是 NaN,并且您出于某种原因将其抑制为空字符串等。