Python 在熊猫的群内迭代
我有一个问题,我认为这涉及到在熊猫组中迭代单个行。如果有人有矢量化的解决方案,那就太好了。基本上,我试图计算一个团队在特定阶段的天数:Python 在熊猫的群内迭代,python,pandas,Python,Pandas,我有一个问题,我认为这涉及到在熊猫组中迭代单个行。如果有人有矢量化的解决方案,那就太好了。基本上,我试图计算一个团队在特定阶段的天数: Group stage time A 1 2000-01-01 A 1 2000-01-10 A 2 2000-01-25 A 2 2000-02-04 A 2 2000-02-20 B 1
Group stage time
A 1 2000-01-01
A 1 2000-01-10
A 2 2000-01-25
A 2 2000-02-04
A 2 2000-02-20
B 1 2000-01-05
B 1 2000-02-13
C 3 2000-04-01
将成为:
Group stage time stage duration
A 1 2000-01-01 0
A 1 2000-01-10 9
A 2 2000-01-25 0
A 2 2000-02-04 10
A 2 2000-02-20 26
B 1 2000-01-05 0
B 1 2000-01-13 8
C 3 2000-04-01 0
编辑1:
多亏了Jeff和DSM,这项工作非常有效:
df.groupby([“Group”,“stage”])[“time”].apply(lambda x:x-x.iloc[0])
您可以使用datetime.strtime
方法获取两个日期之间的天数
例如:
>>> from datetime import datetime
>>> date1 = "2000-01-25"
>>> date2 = "2000-02-04"
>>> delta = (datetime.strptime(date2,"%Y-%m-%d") - datetime.strptime(date1,"%Y-%m-%d"))
>>> delta.days
10
多亏了Jeff和DSM,这项工作非常有效:
df.groupby([“Group”,“stage”])[“time”].apply(lambda x:x-x.iloc[0])
我和其他人最近回答了一个非常相似的问题:这很相似,但我的问题是,每个组的stage都在不规则的间隔内变化,所以我不能只指定单个位置的差异。我需要不断更新参考日期。为什么02-13 B-1的持续时间是8而不是39?很好。修正了。我可能遗漏了一些东西,但sol'n Jeff链接不是为你工作吗<代码>df.groupby([“组”、“阶段”])[“时间”]。应用(lambda x:x-x.iloc[0])。谢谢。我的问题不在于找出日期的不同。这就是如何进行这种特殊的计算。