簡體   English   中英

如何將 PySpark/Pandas 數據框中的日期/自定義/通用格式的列值轉換為日期格式?

[英]How to convert column values present in date/custom/general formats in a PySpark/Pandas dataframe into a Date Format?

我有一個數據框,其中有一列包含多種格式的日期值(在 Excel 中顯示為自定義/常規/日期),就像您在下面的“之前”列中看到的一樣:

在此處輸入圖片說明

它們最初都只是日期值,但在我得到的輸入 CSV 文件中的某個地方被修改為不同的格式。

我的目標是將值轉換為您可以在“之后”列中看到的“DD/MM/YYYY”格式。

我正在將此作為 Pandas/Spark 數據框閱讀,因為必須對其進行此更改的列中有數千個此類值。

我嘗試執行以下操作,但沒有得到我需要的正確“DD/MM/YYYY”格式。 此外,一些值也保持不變:

df['After'] = pd.to_datetime(df['Before'], format='%d-%m-%y, errors='coerce')

任何人都可以幫忙解決這個問題嗎?

干杯!

這是我的嘗試:

df = pd.read_excel('test.xls')

df['ADATE'] = pd.to_datetime(pd.to_numeric(df['A'],errors='coerce'), unit='D', origin='1899-12-30').fillna(pd.to_datetime(df['A'],errors='coerce'))


print(df)

輸出(如何讀取最后一行???)

             A                   ADATE
0    43746.39028 2019-10-08 09:22:00.192
1          43735 2019-09-27 00:00:00.000
2  1/1/2021 0:00 2021-01-01 00:00:00.000
3        50:11.0                     NaT

編輯

使用 ".dt.strftime('%d/%m/%Y')" 使用所需的格式,記住這會改變類型。

df['ADATE'] = pd.to_datetime(pd.to_numeric(df['A'],errors='coerce'), unit='D', origin='1899-12-30').fillna(pd.to_datetime(df['A'],errors='coerce')).dt.strftime('%d/%m/%Y')

暫無
暫無

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

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