我在DataFrame中有一个日期为yyyymmdd格式的列,我需要将其永久更改为yyyy-mm-dd。
我该怎么做?
答案 0 :(得分:1)
根据您在评论中提供的信息,由于列dtype为yyyy-mm-dd
,因此列值不能采用int64
格式。
您可以将列dtype更改为str
,但数据不会有用(即您无法对其进行任何日期计算,但{{1 }},<
应该仍然可以工作,但按字典顺序排列)。如果这仍然是你想要的,并假设>
是数据框,日期列名称是df
:
date
更好的方法是使用实际日期dtype:
def format_date_col(x):
x = str(x)
return '-'.join([x[:4], x[4:6], x[6:]])
# or maybe like that for better readability:
x = str(x)
return '{year}-{month}-{day}'.format(year=x[:4], month=x[4:6], day=x[6:])
df['date'] = df['date'].apply(format_date_col)