03Mar2020 日期格式系列的 Panda 数据帧转换为 2020-03-03

时间:2021-07-14 17:52:04

标签: python pandas dataframe

我无法转换输入

Dates = {'dates': ['05Sep2009','13Sep2011','21Sep2010']}

到所需的输出

Dates = {'dates': [2019-09-02,2019-09-13,2019-09-21]}

使用 Pandas 数据框。

data = {'dates': ['05Sep2009','13Sep2011','21Sep2010']}
df = pd.DataFrame(data, columns=['dates'])
df['dates'] = pd.to_datetime(df['dates'], format='%Y%m%d')
    
print (df)

输出:

ValueError: time data '05Sep2009' does not match format '%Y%m%d' (match)

我是这个图书馆的新手。感谢帮助。

2 个答案:

答案 0 :(得分:1)

目前月份是缩写的并且不是数字,因此您不能使用 %m。 要转换缩写月份并获得预期输出,请使用 %b,如下所示:

df['dates'] = pd.to_datetime(df['dates'], format='%d%b%Y')

更新:要将 DataFrame 转换回字典,您可以使用函数 to_dict() 但首先,要获得所需的输出,您需要将列从 {{1} } 回到 datetime 类型。您可以通过以下方式实现:

string

答案 1 :(得分:0)

您必须将 %m 更改为 %b。因为 %m 支持将月份作为零填充的十进制数。但是在你的数据框中有一个月份的缩写。试试这些代码:

data = {'dates': ['05Sep2009','13Sep2011','21Sep2010']}
df = pd.DataFrame(data, columns=['dates'])
df['convert of dates'] = pd.to_datetime(df['dates'], format='%d%b%Y')
    
display(df)

Look

您也可以查看有关其他格式的链接: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior