如何将 PySpark/Pandas 数据框中 date/custom/general 格式的列值转换为日期格式?
How to convert column values present in date/custom/general formats in a PySpark/Pandas dataframe into a Date Format?
我有一个数据框,其中有一列包含以多种格式存在的日期值(在 Excel 中显示为 custom/general/date),就像您在下面的“之前”列中看到的那样:
它们最初都只是日期值,但在我得到的输入 CSV 文件中某处被修改为不同的格式。
我的objective是将值转换成“DD/MM/YYYY”格式,你可以在“After”栏中看到。
我将其作为 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)
output(最后一行怎么读???)
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')
我有一个数据框,其中有一列包含以多种格式存在的日期值(在 Excel 中显示为 custom/general/date),就像您在下面的“之前”列中看到的那样:
它们最初都只是日期值,但在我得到的输入 CSV 文件中某处被修改为不同的格式。
我的objective是将值转换成“DD/MM/YYYY”格式,你可以在“After”栏中看到。
我将其作为 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)
output(最后一行怎么读???)
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')