簡體   English   中英

將不同的日期格式轉換為數據框列中的單一格式

[英]Converting different date formats to a single format in a dataframe column

我想在我的數據框列中使不同的日期格式相同。

輸入:

0      16.09.2014
1      2014-09-16
2      02.12.2014
3      2014-12-02
4      09.01.2018

183    2015-03-30
184    12.04.2017
185    2017-04-12
186    28.12.2018
187    2018-12-28
Name: invoiceDate, Length: 188, dtype: object

但我使用:

df['invoiceDate'] = pd.to_datetime(df['invoiceDate'], errors='coerce') 
df['invoiceDate'].dt.strftime('%d.%m.%Y') 

輸出:(它以相同的格式寫入前兩個,但隨后出錯並逐月逐月獲取。)

0      16.09.2014
1      16.09.2014
2      12.02.2014 (true)
3      02.12.2014 (false)
4      01.09.2018
   
183    30.03.2015
184    04.12.2017 (true)
185    12.04.2017 (false)
186    28.12.2018
187    28.12.2018
Name: invoiceDate, Length: 188, dtype: object

如果輸出應該是;

輸出 :

0      16.09.2014
1      16.09.2014
2      02.12.2014
3      02.12.2014
4      09.01.2018

183    30.03.2015
184    12.04.2017
185    12.04.2017
186    28.12.2018
187    28.12.2018
Name: invoiceDate, Length: 188, dtype: object

在這種特殊情況下,您只需要傳遞dayfirst=True即可按照您的意圖解析日期

df['invoiceDate'] = (
    pd.to_datetime(df['invoiceDate'], errors='coerce', dayfirst=True)
      .dt.strftime('%d.%m.%Y')
)

如果您將日期列設置為 = date,您可以執行以下操作

df['Date'] = pd.to_datetime(df['Date'], infer_datetime_format=True)

從這里您可以簡單地告訴它您希望使用 strftime 構造日期的格式

df['Date'] = df['Date'].apply(lambda x : x.strftime('%d.%m.%Y'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM