我在Pandas中有一个名为“munged_data”的 Dataframe ,包含两列“entry_date”和“dob”,我已使用www.example.com _timestamp将其转换为时间戳pd.to。我试图找出如何根据“entry_date”和“dob”之间的时差计算人的年龄,为此,我需要获得两列之间的天数差(这样我就可以做一些像round(days/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
然而,我似乎无法提取的日子作为一个整数,以便我可以继续我的计算。任何帮助感谢。
5条答案
按热度按时间uoifb46i1#
使用自v0.15.0起可用的Pandas类型
Timedelta
,您还可以执行以下操作:c8ib6hqw2#
你需要0.11(0.11rc1已经出来了,最后的问题将在下周解决)
最后需要这个奇怪的应用程序,因为还没有完全支持timedelta64[ns]标量(例如,我们现在使用Timestamp表示datetime64[ns],其值为0.12)
qoefvg9y3#
不确定你是否还需要它,但是在Pandas 0.14中我通常使用. astype('timedelta64 [X]')方法http://pandas.pydata.org/pandas-docs/stable/timeseries.html(频率转换)
退货:
x一个一个一个一个x一个一个二个x
退货:
希望能有所帮助
kqqjbcuj4#
让我们指定一个名为time_difference的panda系列,其类型为
numpy.timedelta64[ns]
一种只提取日期(或任何所需属性)的方法如下:
使用此函数是因为numpy.timedelta64对象没有“days”属性。
pprl5pva5#
要将任何类型的数据转换为天数,只需使用
pd.Timedelta().days
: