Python-导出到excel时格式化日期值

Python-导出到excel时格式化日期值,python,excel,format,Python,Excel,Format,我有一个数据框,列是字符串。我想将df导出到excel,并使A列成为日期类型,格式为DDMMMYYYY(即,我需要“2017年1月1日”而不是“2017-01-01”) 我尝试了两件他们不起作用的事情: df1 = pd.DataFrame( columns=["A", "B", "C"], data=[['2017-01-01',np.nan, "ok"], ['2017-02-01',8,"fine"], ['2017-03-01',100,np.n

我有一个数据框,列是字符串。我想将df导出到excel,并使A列成为日期类型,格式为DDMMMYYYY(即,我需要“2017年1月1日”而不是“2017-01-01”)

我尝试了两件他们不起作用的事情:

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)


如何执行此操作?

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

df1['A'] = pd.to_datetime(df1['A'], format="%d%b%Y")
星号应不允许日期元素之间出现空格或运算符


另外,对于另一种格式设置。

您可以首先将其解析为datetime对象,然后将其转换为所需格式

dd*mmm*yyyy

我有一个类似的用例。我用过熊猫和熊猫

也许是这样的

将熊猫作为pd导入
将numpy作为np导入
导入箭头
df1=pd.DataFrame(
列=[“A”、“B”、“C”],
资料=[
['2017-01-01',np.nan,“ok”],
['2017-02-01',8,“罚款”],
['2017-03-01',100,北卡罗来纳州南部]
]
)
df1['A']=df1['A']。应用(
lambda val:arrow.get(val.format(“DDMMMYYYY”).upper()
)
df1.to_excel('test.xlsx',index=False)

谢谢Zohaib。我收到了这个错误消息:“TypeError:strptime()参数1必须是字符串,而不是序列”。你知道如何解决这个问题吗?从你的问题来看,
df1['A']
似乎是你的日期字符串。因此,请找到日期str的表达式,并将其传递到
df1['A']
dd*mmm*yyyy
from datetime import datetime
df1['A'] = datetime.strptime(df1['A'], '%Y-%m-%d').strftime("%d%b%Y").upper()