【问题标题】:python apply function with df as input以df为输入的python应用函数
【发布时间】:2021-04-19 15:38:30
【问题描述】:

我有一个使用 2 个数据帧和一个数字作为输入的函数。我想将该函数应用于数据帧中的每一行,同时在上述函数中使用来自该数据帧的输入。

def function(df1, df2, number):

df3['result'] = df3['number'].apply(function, args=(df1, df2, df3['number']))

但是我得到 TypeError: 'int' object is not subscriptable。有什么建议吗?

【问题讨论】:

  • 将你的函数重写为function(number, df1,df2),然后调用df3['number'].apply(function, df1,df2)

标签: python pandas apply


【解决方案1】:

@Quang 解决方案很好,您也可以显式使用可能增加可读性的 lambda:

df3['result'] = df3['number'].apply(
    lambda s: function(df1, df2, s)
)

【讨论】:

  • 不幸的是,这两种解决方案都不起作用,@Quang 解决方案产生相同的错误,lamba 解决方案给出 ValueError: Wrong number of items passed 1619,placement means 1
  • A 认为这可能是函数定义的问题,因为它只接收 0 维参数。不是系列也不是数据框
猜你喜欢
  • 2020-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多