将时间戳列表转换为可读格式(需要快速方式)

时间:2017-12-29 08:16:40

标签: python list datetime

我可以在数据框的一列中存储一个时间戳列表(以毫秒为单位)。所以我可以使用以下代码调用它们:

dataframename['columnname']

给了我类似的东西:

0      1512734400000

1      1512738000000

2      1512741600000

...

498    1514527200000

499    1514530800000

我想将所有这些转换为可读格式。我可以使用以下代码完成:

for x in range(len(dataframename["columnname"])):
      dataframename['columnname'][x] = datetime.datetime.fromtimestamp(dataframename['columnname'][x]/1000).strftime('%Y-%m-%d %H:%M:%S')

然而,这花费了太多时间。有更快的方法吗?

提前感谢任何回答此问题的人。

2 个答案:

答案 0 :(得分:1)

import pandas as pd
dataframename['date'] = pd.to_datetime(dataframename['columnname'], unit='ms')

有关更多示例,请参阅pandas.to_datetime文档

答案 1 :(得分:0)

Pandas支持开箱即用的时间戳到日期时间:

import pandas as pd
dataframename['datetime'] = pd.to_datetime(dataframename['columnname'], unit='ms')

如果您有多列:

# processing the UNIX timestamps into readable dates (pandas datetime):
ts_cols = dataframename.select_dtypes(['datetime']).columns
for col in ts_cols:
    dataframename['%s' % col] = pd.to_datetime(dataframename['%s' % col], unit='ms')

使用大熊猫“to_datetime超过外部日期的性能提升 -  it's 2x faster on small dataset, and it'd scale.