熊猫:无法将日期时间YYYY-mm-dd转换为dd-mm-YYYY

时间:2018-09-12 09:10:09

标签: python string pandas datetime series

我有一个带有日期列(datetime64 [ns]格式)的熊猫数据框 日期以yyyy-mm-dd列出(例如2018-09-12)。我要转换 到dd-mm-yyyy,但我尝试的方法似乎无效:

pd.to_datetime(df['date'], format='%d-%m-%Y')
0    2018-09-12
1    2018-09-12

编辑:添加示例df

df.head(3)
        date      nr
0   2018-09-12   144
1   2018-09-12    37
2   2018-09-12    28

df.info()
date   datetime64[ns]
nr     int

“日期”不包含任何Nan或Nat

2 个答案:

答案 0 :(得分:2)

您需要将用to_datetime解析的日期转换为所需表示形式的字符串。您现在看到的显示格式是用于Datetime对象的默认显示格式:

In [10]: frame = {'date': ['2018-09-12', '2016-10-02']}

In [11]: pd.to_datetime(frame['date']).strftime('%d-%m-%Y')
Out[11]: Index(['12-09-2018', '02-10-2016'], dtype='object')

答案 1 :(得分:2)

  

日期以yyyy-mm-dd列出(例如2018-09-12)。

是,但这不是。您看到的是datetime对象的特定字符串表示形式。在内部,datetime的值为stored as integers

  

我想将其转换为dd-mm-yyyy,但是我尝试的似乎没有   有效

正确,因为pd.to_datetime转换为datetime对象。您需要将系列转换为一系列字符串,这些字符串将具有object dtype:

df['date'] = df['date'].dt.strftime('%d-%m-%Y')