我有一个数据框,其中有一列日期表示为时间戳(例如datetime(1970, 1, 1) + timedelta(milliseconds=int(data['Date'].values[0]))
)。如何将其转换为日期时间?
我知道您只需一个值就可以
{{1}}
但是如何将其应用于整个列?
答案 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_datetime
和errors='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
或直接将其分配给列。