我有一个带有unix时间的熊猫数据,它被转换成一个时间戳(都很好)。然后,我想提取时间戳列-作为一个列表-并保留信息。但由于某些原因,当我这样做时,它会被转换回unix时间(有更多的尾随零.):
import pandas as pd
data = {'servertime':[1576887840000,1576887900000,1576887960000], 'val':[1,2,3]}
df = pd.DataFrame(data)
df['timestamp'] = df['servertime'].apply(lambda x: datetime.fromtimestamp(x/1000))
t = df['timestamp'].values.tolist()
t
Out[1]: [1576887840000000000, 1576887900000000000, 1576887960000000000]
有什么想法吗?
发布于 2019-12-22 04:18:40
您可以将to_datetime
与unit='ms'
结合使用,以提高性能;对于日期时间列表,可以使用Series.dt.to_pydatetime
和tolist()
。
df['timestamp'] = pd.to_datetime(df['servertime'], unit='ms')
print (df)
servertime val timestamp
0 1576887840000 1 2019-12-21 00:24:00
1 1576887900000 2 2019-12-21 00:25:00
2 1576887960000 3 2019-12-21 00:26:00
t = df['timestamp'].dt.to_pydatetime().tolist()
print (t)
[datetime.datetime(2019, 12, 21, 0, 24),
datetime.datetime(2019, 12, 21, 0, 25),
datetime.datetime(2019, 12, 21, 0, 26)]
https://stackoverflow.com/questions/59443174
复制