python - pandas .apply args 自动解压列表?

标签 python pandas

我在文档或 SO 上找不到任何关于此的内容......

给定:

def applied_func(row, list_of_values):
  for val in list_of_values:
    // do something generative
  return generated_thing

list_for_applied_func = ['foo', 'bar', 'baz']

df['computed value'] = df.apply(applied_func, args=(list_for_applied_func), axis=1))

我收到意外错误“applied_func() 需要 2 个位置参数,但给出了 4 个。这告诉我它是自动解包上面的 list_of_applied_func 。如何处理传递的列表作为参数作为计算函数中使用的列表?

最佳答案

确实,如this line显示,args 是通过解包发送的,即 f(..., *args)。补救措施是将列表转换为一元组:

                                  # note the comma|
df.apply(applied_func, args=(list_for_applied_func,), axis=1))

这样args将是一个1元组,当*'ed时,将传递一个列表。

关于python - pandas .apply args 自动解压列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67507584/

相关文章:

Python - 使用现有格式保存新的 Excel 工作表

python - 已弃用的方法 from_items 在更改为 from_dict 时会引发错误

python - 计算两个日期之间的差异

python - 当时间序列中的一个值出现多次时替换它

python - SKlearn 线性回归系数等于 0

python - 在python中将cx_Oracle.LOB数据转换为字符串

Python Pandas Dataframe 将列值/索引拉低一

python - 如何用另一列中包含的值填充 NaN 值?

python - 如何在 Scrapy 中使用 response.XPath 从多个标签中提取文本数据?

python-3.x - 将盈透证券 API 引入 Pandas