【问题标题】:Pandas how to apply a function that takes two arguments熊猫如何应用带有两个参数的函数
【发布时间】:2022-01-11 06:28:37
【问题描述】:

我有一个 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')。解决此错误的最佳方法是什么?

【问题讨论】:

  • 能否展示您的数据框样本?

标签: python python-3.x pandas dataframe pipeline


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-08-29
    • 2023-02-07
    • 2016-09-17
    • 2018-05-22
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    相关资源
    最近更新 更多