【发布时间】:2026-02-13 20:15:02
【问题描述】:
我有两个 csv,我想将这些 csv 合并或合并为左连接... 我的键列是“id”,我在两个 csv 中都有与“result”相同的非键列,但是如果 2nd CSV 的“result”列中存在任何值,我想覆盖“result”列。如何使用 pandas 或任何脚本语言来实现这一点。请查看我的最终预期输出。
输入
input.csv:
id,scenario,data1,data2,result
1,s1,300,400,"{s1,not added}"
2,s2,500,101,"{s2 added}"
3,s3,600,202,
输出.csv:
id,result
1,"{s1,added}"
3,"{s3,added}"
预期输出
final_output.csv
id,scenario,data1,data2,result
1,s1,300,400,"{s1,added}"
2,s2,500,101,"{s2 added}"
3,s3,600,202,"{s3,added}"
当前代码:
import pandas as pd
a = pd.read_csv("input.csv")
b = pd.read_csv("output.csv")
merged = a.merge(b, on='test_id',how='left')
merged.to_csv("final_output.csv", index=False)
问题:
使用此代码,我得到了两次结果列。我只想要一次,如果该列中存在值,它应该覆盖。如何获得单个结果列?
【问题讨论】:
-
您想要
python中的这个或awk中的代码是否可以接受?