熊猫DF将所有日期转换为YYYY-MM-DD格式

时间:2020-06-16 00:41:05

标签: pandas date datetime format

我有一个看起来像这样的数据存储在DF中,并且我正在尝试转换“ DATE”列,以便所有日期都采用yyyy-mm-dd格式,而不是yyyy-dd-mm。您可以看到“ TIME”列将日期更改为新的日期(一些未显示的日期已经设置为YYYY-MM-DD格式,但是我正在尝试将所有日期更改为YYYY-MM -DD格式):

           DATE  TIME  BAFFIN BAY  GATUN II   GATUN I  KLONDIKE IIIG  \
8778 2016-01-01  1900    8.926278  8.046583  7.649784       7.333993   
8779 2016-01-01  2000    8.817666  4.395097  4.748931       6.672631   
8780 2016-01-01  2100    8.704014  6.384826  7.128692       6.115349   
8781 2016-01-01  2200    8.496358  8.261933  8.166153       6.242737   
8782 2016-01-01  2300    8.434297  4.656991  5.894877       5.781445   
8783 2016-02-01  0000    8.528372  3.056838  3.086056       5.023564   
8784 2016-02-01  0100    8.783731  4.614589  4.894076       5.042875   
8785 2016-02-01  0200    8.572500  3.860174  4.641366       5.174426   
8786 2016-02-01  0300    8.279557  2.076971  2.644479       5.492729   
8787 2016-02-01  0400    8.378920  3.562210  2.806703       5.356025   

我试图通过指定格式将其“ DATE”列设置为datetime列,但它什么也没做:

df2['DATE'] = pd.to_datetime(df2['DATE'],format='%Y-%m-%d')

预先感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

你能试试吗

pd.to_datetime(df['TIME'], dayfirst=True)

0   2016-01-01
1   2016-01-01
2   2016-01-01
3   2016-01-01
4   2016-01-01
5   2016-01-02
6   2016-01-02
7   2016-01-02
8   2016-01-02
9   2016-01-02

答案 1 :(得分:1)

考虑加入“ DATE”和“ TIME”以获取完整的datetime列。假设两列都是dtype obj(字符串),则可以使用+运算符将它们组合在一起,然后使用指定的format调用pd.to_datetime。例如:

import pandas as pd
df = pd.DataFrame({'DATE': ['2016-01-01', '2016-02-01'],
                   'TIME': ['1900', '0000']})

df['DateTime'] = pd.to_datetime(df['DATE']+df['TIME'], format='%Y-%d-%m%H%M')
# df['DateTime']
# 0   2016-01-01 19:00:00
# 1   2016-01-02 00:00:00
# Name: DateTime, dtype: datetime64[ns]