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)
我有一个数据帧,列是字符串。我想将df导出为excel,并将列A作为日期类型,格式为DDMMMYYYY(即代替'2017-01-01'我需要'01JAN2017')。
我尝试了两件不起作用的事情:
df1['A'] = pd.to_datetime(df1['A']).dt.strftime('%d%b%Y')
或
df1['A'] = pd.to_datetime(df1['A'], format="%d%b%Y")
怎么做?
答案 0 :(得分:1)
我有一个类似的用例。我用过熊猫和arrow!
也许是这样的?
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)
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以先将其解析为datetime对象,然后将其转换为所需的格式
from datetime import datetime
df1['A'] = datetime.strptime(df1['A'], '%Y-%m-%d').strftime("%d%b%Y").upper()