python - 使用列名在for循环中逐行更新DataFrame
问题描述
我有一个包含三列的 DataFrame df:“val_1”、“val_2”和“winning_val”。'Val_1' 和 'val_2' 充满了值,而 'winning_val' 充满了 NaN。我希望这个 for 循环循环遍历 df 并填写 'winning_val' 列。
for i, row in df.iterrows():
df.at[i, 'winning_val'] = find_winner(row)
此代码不修改 df,并保持 'winning_val' 列充满 NaN。我还需要能够通过字符串名称而不是索引来访问列。
解决方案
你有没有尝试过
df['winning_val'] = df.apply(find_winner, axis=1)
wherefind_winner
是定义用于处理数据框行的函数,例如:
def find_winner(row):
return max(row['val_1'], row['val_2'])
推荐阅读
- google-cloud-platform - cloudsql 到 cloudsql 迁移权限问题
- javascript - 在输入 React.js 中搜索时如何显示组件
- python - tkinter 简单对话框 - 为什么会调用取消?
- spring-integration - 订阅单声道
来自 SI 中的反应式单向处理程序 - php - Laravel 8 Policy 总是返回“此操作未经授权”。
- android - 使用 MoPub 的 Android 原生崩溃
- r - R中的RadioButtons闪亮
- javascript - 错误 TS2307:找不到模块 'mysql2' 或其对应的类型声明
- python - 如何使用时区作为 GMT-5:00 在 Python 中转换时间戳?
- reactjs - 刷新页面时将值重置为“null”。收到错误“无法读取 null 的属性‘电子邮件’”。有什么办法可以防止这种情况发生吗?