如何更改数据框列中的日期格式。

How do I change the date format in a dataframe column.

我在 DataFrame 中有一个日期格式为 yyyymmdd 的列,我需要将其永久更改为 yyyy-mm-dd。

我该怎么做?

鉴于您在评论中提供的信息,列值不能采用 yyyy-mm-dd 形式,因为列 dtype 是 int64

您可以将列 dtype 更改为 str,但数据将无用(即您将无法对其进行任何日期计算,但 < , > 应该仍然有效,但按字典顺序排列)。如果这仍然是您想要的,并假设 df 是数据框并且日期列名称是 date:

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)

更好的方法是使用实​​际日期数据类型:

from datetime import datetime 

def format_date_col(x):
    return datetime.strptime(str(x), '%Y%m%d')

df['date'] = df['date'].apply(format_date_col)

print df['date'].dtype
>> datetime64[ns]