python - python - 如何在python中对具有两个或多个变量的数据框使用列表理解?
问题描述
我有df
来自excel的数据框
这是否可能以任何方式:
df["A"] = [foo(b, c) for (b, c) in (df["B"], df["C"])]
需要从数据框的不同列传递函数中的变量
谢谢
解决方案
您可以使用df.apply()
on (用于列索引)来获取和axis=1
的对应值,以便传递给,如下所示:df["B"]
df["C"])
foo
df['A'] = df.apply(lambda x: foo(x['B'], x['C']), axis=1)
这是完成任务的更惯用的 Pandas 方式。我们通常更喜欢使用 Pandas 函数而不是列表推导,因为 Pandas 函数可以NaN
更好地处理值,而列表推导在处理值时经常会出错NaN
。
推荐阅读
- centos - 关于 py4j 异常
- r - 从 NodeJS 改进 R 脚本执行
- r - 在 R 中保存自动生成的图
- javascript - 我不能用动态 id 调用 div
- laravel - Laravel 三重关系
- ruby - 替代 if-then-else 或 case 语句
- cmd - 使用 gsutil 复制文件后,它们不会立即从本地存储中删除
- paypal - What is the difference between Paypal "preapproved payments" and "automatic payments"?
- c# - CheckSchemeName 在具有多个前缀的 url 上失败
- sql - SQL 使用 Floor 向下舍入