格式化字符串数据帧中的日期



我有这样的数据:

0 2/18/2020
1 9/30/2019

每条线路都是str

我希望它保持其类型(字符串,而不是日期时间(,但看起来像这样:

0 2020-02-18
1 2019-09-30

如何为数据帧中的所有行实现这种格式?

谢谢!

使用split分隔MMDDYYYY,然后根据需要更改列表的顺序。在最后joining之前,请确保个位数的月份和天数接收到前导零,使用-而不是/:将列表返回到一个字符串中

df = pd.DataFrame({'col': ['2/18/2020', '9/30/2019']})
df['col'] = (df.col
.apply(lambda x: x.split('/')[2:] + x.split('/')[:2])
.apply(
lambda x:
x[0:1]
+ (x[1:2] if len(x[1]) > 1 else ['0'+x[1]])
+ (x[2:3] if len(x[2]) > 1 else ['0'+x[2]])
)
.apply(lambda x: '-'.join(x)))

df
col
0   2020-02-18
1   2019-09-30

您可以使用:

import pandas as pd
df = pd.DataFrame({'date': ['2/18/2020', '9/30/2019']})
df['date'] = pd.to_datetime(df['date']).dt.strftime('%Y-%m-%d')
print(df)

结果:

date
0  2020-02-18
1  2019-09-30

最新更新