熊猫将日期时间格式的列从31JAN2020转换为2020-01-31

时间:2020-07-08 22:13:38

标签: python pandas datetime

我的数据框的列为:

Date
31Jan20
31Jan20
3Mar20
3Mar20

我正在尝试将其转换为

Date
2020-01-31
2020-01-31
2020-03-03
2020-03-03

我能够将每个日期转换为单个日期

datetime.datetime.strptime(date1, '%d%b%Y').strftime('%Y-%m-%d')

但是当我尝试转换列时,它不起作用

test['date_fmt']  = pd.to_datetime(test["date"].strptime('%d%b%Y').strftime('%Y-%m-%d'))

错误:“系列”对象没有属性“ strptime”

任何人都可以帮忙吗?谢谢!

2 个答案:

答案 0 :(得分:0)

只需将df['Date']直接传递到pd.to_datetime并将结果转换为str

s = pd.to_datetime(df['Date'], errors='coerce').astype(str)

Out[867]:
0    2020-01-31
1    2020-01-31
2    2020-03-03
3    2020-03-03
Name: Date, dtype: object

注意:从您的代码中,我假设您希望最终输出为日期的字符串格式。

答案 1 :(得分:-1)

您还可以创建一个新的DataFrame日期:

pd.date_range(开始='1/1/2020',结束='1/03/2020')

更多信息https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.date_range.html