如何将一列时间戳转换为日期时间?

时间:2019-04-16 19:37:03

标签: python pandas datetime timestamp

我有一个数据框,其中有一列日期表示为时间戳(例如datetime(1970, 1, 1) + timedelta(milliseconds=int(data['Date'].values[0])) )。如何将其转换为日期时间?

我知道您只需一个值就可以

{{1}}

但是如何将其应用于整个列?

2 个答案:

答案 0 :(得分:5)

使用pandas.to_datetime传递参数var myConfig = new AWS.Config({ accessKeyId:"access_key", secretAccessKey: "secret_key", region: "us-west-2" });

unit='ms'

示例

df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')

[出]

df = pd.DataFrame({'timestamp': [1554334020000, 1554334200000, 1554334380000,
                                 1554334560000, 1554334740000]})
print(df)

       timestamp
0  1554334020000
1  1554334200000
2  1554334380000
3  1554334560000
4  1554334740000

[出]

df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
print(df)

答案 1 :(得分:4)

如果您(已经)有一个系列,则只需进行astype通话:

pd.Series(ts).astype('datetime64[ms]')

0   2019-04-03 23:27:00
1   2019-04-03 23:30:00
2   2019-04-03 23:33:00
3   2019-04-03 23:36:00
4   2019-04-03 23:39:00
dtype: datetime64[ns]

如果这会使您遇到错误(由于值无效),请使用to_datetimeerrors='coerce'

pd.to_datetime(ts, unit='ms', errors='coerce')

DatetimeIndex(['2019-04-03 23:27:00', '2019-04-03 23:30:00',
               '2019-04-03 23:33:00', '2019-04-03 23:36:00',
               '2019-04-03 23:39:00'],
              dtype='datetime64[ns]', freq=None)

哪个返回DatetimeIndex。您可以对结果调用to_series或直接将其分配给列。