我正在尝试将一列时间戳(YYYY-MM-DD HH-MM-SS)从pandas df转换为秒。
这是我当前的代码:
df['recorded_time'] = pd.to_datetime(df['recorded_time'])
df['timestamp'] = df['recorded_time'].datetime.total_seconds() #creating a new column
我一直遇到的错误是:
AttributeError: 'Series' object has no attribute 'datetime'
。
谁能指出我可能错过的地方?
答案 0 :(得分:1)
我正在使用example you gave in a comment作为df。如果不使用datetime.datetime
访问器,则无法对熊猫datetime64
值使用常规的.dt
方法。除了链接到的示例外,您还说过要total_seconds
引用2019/01/01 00:00:00
的基本日期时间。 timedelta
必须始终具有某种参考点,否则可以是任意值。
import pandas as pd
df1 = pd.DataFrame({'lat':[15.13,12.14,13.215,11.1214,12.14],
'lon': [38.52, 37.536,39.86,38.536,37.536],
'Datetime': pd.to_datetime(['2019-03-09 16:05:07',
'2019-03-15 09:50:07',
'2019-03-09 11:03:47',
'2019-03-10 16:41:18',
'2019-03-09 06:15:27']),
'temp':[23,22,21,22,19]})
# We can just call it once to get a reference to your datum point
base_dt = pd.to_datetime('2019/01/01 00:00:00')
df1['seconds'] = (df1['Datetime'] - base_dt).dt.total_seconds()