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'))
我有一个 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'))