如何将Pandas系列的整数时间戳转换为日期时间(使用fromtimestamp)?错误=无法将该系列转换为〈class 'int'>

m528fe3b  于 2022-11-20  发布在  其他
关注(0)|答案(2)|浏览(182)

我有一个带有整数形式时间戳的 Dataframe 。我想将其转换为日期时间,这样我就可以使用mplfinance.plot()绘制数据(如果我试图使用时间戳绘制,则会出现以下错误):

Expect data.index as DatetimeIndex

下面是一个示例来说明该问题:

import datetime as dt

data = {'timestamp':  [1364774700, 1364775000,1364775900]}
df = pd.DataFrame (data, columns = ['timestamp'])

df['datetime'] = dt.datetime.fromtimestamp(df['timestamp'])

但这会产生错误:

TypeError: cannot convert the series to <class 'int'>

对单个时间戳值使用fromtimestamp可以正常工作。

icnyk63a

icnyk63a1#

那些整数时间戳是自Unix纪元以来的秒数(“Unix时间”);使用指定了unti=secondpandas.to_datetimedf['timestamp']转换为DatetimeIndex

import pandas as pd

df = pd.DataFrame({'timestamp': [1364774700, 1364775000, 1364775900]})

df = df.set_index(pd.to_datetime(df['timestamp'], unit='s'))
#                       timestamp
# timestamp                      
# 2013-04-01 00:05:00  1364774700
# 2013-04-01 00:10:00  1364775000
# 2013-04-01 00:25:00  1364775900
jdzmm42g

jdzmm42g2#

df['datetime'] = pd.to_datetime(df['timestamp'])
我的理解是,pandas datetime和datetime模块有微妙的不同,当使用pandas时,最好使用pandas实现。

相关问题