您能否将时间戳的pandas列提取到时间戳列表中

时间:2019-12-22 09:52:13

标签: python pandas datetime

我有一个带有unix时间的pandas数据帧,该数据帧被转换为时间戳(一切都很好)。然后,我想提取时间戳列(作为列表)并保留信息。但是由于某种原因,当我这样做时,它会转换回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]

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以将to_datetimeunit='ms'一起使用以提高性能,并为日期时间列表使用Series.dt.to_pydatetimetolist()

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)]