我在熊猫中有一个名为'munged_data‘的数据帧,有两列'entry_date’和‘munged_data’,我已经用pd.to_timestamp.I将其转换为时间戳。我想知道如何根据'entry_date‘和’道布‘之间的时间差来计算人们的年龄,为此,我需要得到这两列之间的天数差(这样我就可以做一些类似于舍入(天/365.25)的事情)。我似乎找不到一种使用矢量化操作的方法来做到这一点。当我执行munged_data.entry_date-munged_data.dob时,我得到了以下内容:
internal_quote_id
2 15685977 days, 23:54:30.457856
3 11651985 days, 23:49:15.359744
4 9491988 days, 23:39:55.621376
7 11907004 days, 0:10:30.196224
9 15282164 days, 23:30:30.196224
15 15282227 days, 23:50:40.261632 但是,我似乎无法将天数提取为整数,以便继续我的计算。感谢您的帮助。
发布于 2013-04-19 20:26:04
你需要0.11 (0.11rc1已经出来了,下周的最后一次测试)
In [9]: df = DataFrame([ Timestamp('20010101'), Timestamp('20040601') ])
In [10]: df
Out[10]:
0
0 2001-01-01 00:00:00
1 2004-06-01 00:00:00
In [11]: df = DataFrame([ Timestamp('20010101'),
Timestamp('20040601') ],columns=['age'])
In [12]: df
Out[12]:
age
0 2001-01-01 00:00:00
1 2004-06-01 00:00:00
In [13]: df['today'] = Timestamp('20130419')
In [14]: df['diff'] = df['today']-df['age']
In [16]: df['years'] = df['diff'].apply(lambda x: float(x.item().days)/365)
In [17]: df
Out[17]:
age today diff years
0 2001-01-01 00:00:00 2013-04-19 00:00:00 4491 days, 00:00:00 12.304110
1 2004-06-01 00:00:00 2013-04-19 00:00:00 3244 days, 00:00:00 8.887671你需要在最后应用这个奇怪的东西,因为还没有完全支持timedelta64ns标量(例如,我们现在如何对datetime64ns使用时间戳,在0.12版本中)
发布于 2015-03-06 21:50:34
使用从v0.15.0开始提供的Pandas类型Timedelta,您还可以执行以下操作:
In[1]: import pandas as pd
In[2]: df = pd.DataFrame([ pd.Timestamp('20150111'),
pd.Timestamp('20150301') ], columns=['date'])
In[3]: df['today'] = pd.Timestamp('20150315')
In[4]: df
Out[4]:
date today
0 2015-01-11 2015-03-15
1 2015-03-01 2015-03-15
In[5]: (df['today'] - df['date']).dt.days
Out[5]:
0 63
1 14
dtype: int64发布于 2014-07-03 02:02:03
不知道你是否还需要它,但在Pandas0.14中我通常使用.astype('timedelta64X')方法http://pandas.pydata.org/pandas-docs/stable/timeseries.html (变频)。
df = pd.DataFrame([ pd.Timestamp('20010101'), pd.Timestamp('20040605') ])
df.ix[0]-df.ix[1]返回:
0 -1251天类型: timedelta64ns
(df.ix[0]-df.ix[1]).astype('timedelta64[Y]')返回:
0 -4
dtype: float64希望这能有所帮助
https://stackoverflow.com/questions/16103238
复制相似问题