Pandas 如何应用带有两个参数的函数

Pandas how to apply a function that takes two arguments

我有一个 pandas 数据框,其中包含一个日期列,其中日期存储为字符串:

0    2021-12-04
1    2021-12-01
2    2021-11-29
3    2021-11-15
4    2021-11-06
Name: date, dtype: object

我有一个使用变量赋值的解决方案:

df['date'] = df.apply(lambda x: datetime.strptime(x['date'], '%Y-%m-%d'), axis=1)

但由于此转换是数据管道的一部分,因此我想使用 assign 方法。我试过了:

df.assign(date=df['date'].apply(datetime.strptime('%Y-%m-%d')))

但这会产生错误:KeyError: 'date'

我怀疑这是因为 date 列中的值没有传递给 datetime.strptime('%Y-%m-%d')。解决此错误的最佳方法是什么?

使用pd.to_datetime代替apply+lambda+datetime.strptime:

df.assign(date=pd.to_datetime(df['date'], format='%Y-%m-%d'))