Python – 导出为ex​​cel时的格式date值

df1 = pd.DataFrame( columns=["A", "B", "C"], data=[['2017-01-01',np.nan, "ok"], ['2017-02-01',8,"fine"], ['2017-03-01',100,np.nan]]) df1.to_excel('test.xlsx', index=False) 

在这里输入图像说明

我有一个数据框,该列是string。 我想将df导出为ex​​cel,并使列A的格式为DDMMMYYYY(即代替'2017-01-01',我需要'01JAN2017')的datetypes。

我试了两件事情,他们不工作:

 df1['A'] = pd.to_datetime(df1['A']).dt.strftime('%d%b%Y') 

要么

 df1['A'] = pd.to_datetime(df1['A'], format="%d%b%Y") 

这个怎么做?

我有一个类似的用例。 我用pandas和箭头 !

也许这样的事情?

 import pandas as pd import numpy as np import arrow df1 = pd.DataFrame( columns=["A", "B", "C"], data=[ ['2017-01-01',np.nan, "ok"], ['2017-02-01',8,"fine"], ['2017-03-01',100,np.nan] ] ) df1['A'] = df1['A'].apply( lambda val: arrow.get(val).format("DDMMMYYYY").upper() ) df1.to_excel('test.xlsx', index=False) 

在Excel中,将列A格式化为自定义格式:

 dd*mmm*yyyy 

星星应该不允许在date元素之间出现空格或操作符。

另外, 阅读这个另一个格式化。

您可以先将它parsing为datetime对象,然后将其转换为所需的格式

 from datetime import datetime df1['A'] = datetime.strptime(df1['A'], '%Y-%m-%d').strftime("%d%b%Y").upper()