【发布时间】:2019-08-19 11:33:18
【问题描述】:
我遇到了熊猫问题。
我有一个如下所示的数据框:
name date
Mark 2018-01-01
Anne 2018-01-01
Anne 2018-02-01
Anne 2018-04-01
Anne 2018-09-01
Anne 2019-01-01
John 2018-02-01
John 2018-06-01
John 2019-02-01
Ethan 2018-03-01
我需要计算一个额外的列,称为months,它包含每个连续行之间的月数,名称相同。这是为了计算一个名称的出现与 DataFrame 中的下一个名称之间已经过去了多少个月。计算必须按名称分组,因为我只想知道一个用户连续出现之间的月数,而不是不同名称。
这种情况下的预期输出是:
name date months
Mark 2018-01-01 0
Anne 2018-01-01 0
Anne 2018-02-01 1
Anne 2018-04-01 2
Anne 2018-09-01 5
Anne 2019-01-01 4
John 2018-02-01 0
John 2018-06-01 4
John 2019-02-01 8
Ethan 2018-03-01 0
任何有关计算months 列的最有效方法的提示都将受到高度赞赏。
请注意,日期始终是每月的第一天,这使得计算更加容易。
【问题讨论】:
-
不,看看我正在寻找的输出数据框。它是相似的,但是我在这里想要的计算是不同的。你给了我另一个的正确答案,也许你可以帮助得到这个答案?提前谢谢!