我的数据集如下。我想为每个行值计算今天和下面日期之间的日期范围。
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模块可以做这件事,但我不知道如何为每行签名。
答案 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