熊猫日期差异在一列

时间:2016-10-06 15:59:02

标签: pandas date-difference

这是我的数据框:

import pandas as pd
df_manual = pd.DataFrame({'A': ['one', 'one', 'two', 'two', 'one'] ,
                   'B': ['Ar', 'Br', 'Cr', 'Ar','Ar'] ,
                   'C': ['12/15/2011', '11/11/2001', '08/7/2015', '07/3/1999','03/03/2000' ]})

我想创建一个列,其中包含列查看的日期差异(使用先前的分组)。这是我写的:

df_manual['C']=pd.to_datetime(df_manual['C'])
df_manual['diff'] =
df_manual.groupby(['A'])['C'].transform(lambda x: x.diff())

但我得到的结果不是日差。 2001-11-11和2000-03-03之间产生的差异是1971-09-11的日期,而我需要的天数。

知道如何实现它吗?

1 个答案:

答案 0 :(得分:2)

使用apply代替transform

df_manual['diff'] = df_manual.groupby(['A'])['C'].apply(lambda x: x.diff())

结果输出:

     A   B          C       diff
0  one  Ar 2011-12-15        NaT
1  one  Br 2001-11-11 -3686 days
2  two  Cr 2015-08-07        NaT
3  two  Ar 1999-07-03 -5879 days
4  one  Ar 2000-03-03  -618 days

如果您希望df_manual['diff']是整数而不是timedelta,请使用dt.days访问者:

df_manual['diff'] = df_manual.groupby(['A'])['C'].apply(lambda x: x.diff()).dt.days
相关问题