使用时间戳和日期时间并不总是方便的,有些程序需要简单的数字输入。当 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日期时间对象或时间差转换为数字并不是这样处理的。
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
如何将这些类型转换为数值类型?