使用pandas在Python中计算日期范围

时间:2015-03-04 15:34:20

标签: python datetime pandas

我的数据集如下。我想为每个行值计算今天和下面日期之间的日期范围。

date          stock_ticker   holding_days #today-date
2014-12-17    600268         
2015-01-21    002428
2014-11-19    600031
2015-02-26    600216
2014-12-20    601682

我知道datetime模块可以做这件事,但我不知道如何为每行签名。

1 个答案:

答案 0 :(得分:1)

你想要这样的东西:

In [294]:

df['holding_days'] = dt.datetime.now().date() - df['date']
df
Out[294]:
        date  stock_ticker  holding_days
0 2014-12-17        600268       77 days
1 2015-01-21          2428       42 days
2 2014-11-19        600031      105 days
3 2015-02-26        600216        6 days
4 2014-12-20        601682       74 days

In [323]:

def func(x):
    return len(pd.bdate_range(x['date'], dt.datetime.now().date()))

df['holding_bus_days'] = df.apply(lambda x: func(x), axis=1)
df
Out[323]:
        date  stock_ticker  holding_days  holding_bus_days
0 2014-12-17        600268       77 days                56
1 2015-01-21          2428       42 days                31
2 2014-11-19        600031      105 days                76
3 2015-02-26        600216        6 days                 5
4 2014-12-20        601682       74 days                53