Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在熊猫的群内迭代_Python_Pandas - Fatal编程技术网

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])。谢谢。我的问题不在于找出日期的不同。这就是如何进行这种特殊的计算。