如何格式化熊猫日期时间?

时间:2018-09-20 00:41:57

标签: pandas datetime-format strptime strftime

我有一个正常日期的大熊猫系列,例如2017年1月1日。我试图在lambda函数中调用它,但是如果我校准row ['date'],它将返回'2017-01-01T00:00:00.000000000'。使用strptime将其转换为日期时间的正确格式是什么?

感谢帮助

1 个答案:

答案 0 :(得分:1)

数据:

df = pd.DataFrame({'date':['2017-01-01T00:00:00.000000000','2017-01-02T00:00:00.000000000','2017-01-03T00:00:00.000000000']})

您可以使用pd.to_datetime转换整个列。

>>> pd.to_datetime(df['date'])
0   2017-01-01
1   2017-01-02
2   2017-01-03
Name: date, dtype: datetime64[ns]

>>> df['date'][0]
Timestamp('2017-01-01 00:00:00')

如果您有单个单元格,也可以使用pd.to_datetime

>>> pd.to_datetime('2017-01-01T00:00:00.000000000')
Timestamp('2017-01-01 00:00:00')

然后根据需要strftime

>>> pd.to_datetime('2017-01-01T00:00:00.000000000').strftime('%Y/%m/%d')
'2017/01/01'

但是使用pd.Timestamp转换单个单元格更快:

>>> %timeit pd.Timestamp('2017-01-01T00:00:00.000000000')
2.18 µs ± 8.56 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

>>> %timeit pd.to_datetime('2017-01-01T00:00:00.000000000')
54 µs ± 560 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)