为了账号安全,请及时绑定邮箱和手机立即绑定

如何将numpy和pandas datetime对象转换为数字?

如何将numpy和pandas datetime对象转换为数字?

撒科打诨 2021-04-08 06:26:28
使用时间戳,日期时间并不总是很方便。一些程序要求简单的数字输入。当将pandas.stamps收集在pandas.Series中时,可以很容易地将它们转换为数值并返回。import pandas as pdfrom pandas import Timestampage = [30, 31, 31]date = [Timestamp('2001-02-10 00:01:00'), Timestamp('2001-11-12 00:01:00'), Timestamp('2002-02-27 00:01:00')]df = pd.DataFrame({'age': age, 'date': date})pd.to_numeric(df.date)0     9817632600000000001    10055232600000000002    1014768060000000000尽管将单个熊猫或numpy datetime对象或一个timedelta转换为数字不能那样工作。pd.to_numeric(Timestamp('2001-02-10 00:01:00'))pd.to_numeric([Timestamp('2001-02-10 00:01:00')])pd.to_numeric([numpy.datetime64('2001-02-10T00:01:00.000000000')])pd.to_numeric([pd.Timedelta('365 days')])# all give:#> TypeError: Invalid object type at position 0将这些类型转换为数字类型的正确方法是什么?
查看完整描述

3 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

只需使用ts.valuetimestamp的属性ts:


ts = Timestamp('2001-02-10 00:01:00')

print(ts.value)

#981763260000000000


查看完整回答
反对 回复 2021-04-13
?
不负相思意

TA贡献1777条经验 获得超10个赞

将timedelta转换为数值:


x = pd.Timedelta('365 days')

x

#Timedelta('365 days 00:00:00')


type(x)

#pandas._libs.tslibs.timedeltas.Timedelta


y = x / np.timedelta64(1, 'D')

y

#365.0


type(y)

#float


查看完整回答
反对 回复 2021-04-13
?
DIEA

TA贡献1820条经验 获得超2个赞

尝试使用pandas.Timestamp类的方法:


>>> Timestamp('2001-02-10 00:01:00').timestamp()

981763260.0


查看完整回答
反对 回复 2021-04-13
  • 3 回答
  • 0 关注
  • 1085 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信