【发布时间】:2018-12-02 07:46:31
【问题描述】:
使用时间戳,日期时间并不总是很方便。一些程序需要简单的数字输入。当 pandas 时间戳在 pandas.Series 中收集时,很容易将它们转换为数值并返回。
import pandas as pd
from pandas import Timestamp
age = [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 981763260000000000
1 1005523260000000000
2 1014768060000000000
虽然将单个 pandas 或 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
将这些类型转换为数字类型的正确方法是什么?
【问题讨论】:
-
@jpp:我不希望生成 Series 或 DataFrame 只是为了将 Datetime 转换为数值。前两个问题涉及 Series 和 DataFrames。第三个问题是关于 datetime、Timestamp 和 datetime64 之间的转换。它实际上根本与数值无关。最后一个问题有点像我想要的,但也非常具体。所以,我不认为这是一个重复的问题。
标签: python pandas numpy datetime