【发布时间】:2014-02-09 20:36:52
【问题描述】:
假设我有一个日期数组:
df=pd.DataFrame({'Date': [ '5/4/1985', '6/13/1983', '6/13/1982', '12/28/1987'], 'Name': ['J','K','L','M']})
我想找出它们与今天的年、周或季度(一年中的四个)之间的差异。
到目前为止,我知道我会用pd.datetime.now() 来代表今天。
【问题讨论】:
假设我有一个日期数组:
df=pd.DataFrame({'Date': [ '5/4/1985', '6/13/1983', '6/13/1982', '12/28/1987'], 'Name': ['J','K','L','M']})
我想找出它们与今天的年、周或季度(一年中的四个)之间的差异。
到目前为止,我知道我会用pd.datetime.now() 来代表今天。
【问题讨论】:
要获得纳秒差的数量,只需这样做:
In [60]:
pd.datetime.now()-pd.to_datetime(df['Date'])
Out[60]:
0 10508 days, 15:56:08.609000
1 11199 days, 15:56:08.609000
2 11564 days, 15:56:08.609000
3 9540 days, 15:56:08.609000
Name: Date, dtype: timedelta64[ns]
要获得天数或年数(等)的差异:
q=pd.datetime.now()-pd.to_datetime(df['Date'])
array(q).astype('timedelta64[D]').astype(int) #in days
array(q).astype('timedelta64[Y]').astype(int) #in years
【讨论】:
timedelta64 有 4 种类型可供选择:D W M Y,分别代表日、周、月和年。