我有 2 个大数据框,下面 2 个只是这两个数据框的示例。
df1 = pd.DataFrame(columns=['node', 'st1', 'st2'], data=[['a', 1, -1], ['b', 2, 2], ['c', 3, 4]])
node st1 st2
a 1 -1
b 2 2
c 3 4
df2 = pd.DataFrame(columns=['node', 'st1', 'st2'], data=[['a', 8, 5], ['b', 4, 6]])
node st1 st2
a 8 5
b 4 6
仅当两个数据帧中的节点名称匹配时,我才想用 df2、st1 和 st2 列值更新 df1、st1 和 st2 列值。此外,如果 df1 中的 st1 或 st2 列值等于 -1,则不要更新该行和列,即保持为 -1。结果看起来像,
node st1 st2
a 8 -1
b 4 6
c 3 4
我已经尝试使用基本的熊猫合并与左连接合并 2 个数据帧,这会给我一个重复列的 df,然后循环遍历结果 df 中的每一行以检查 st1 和 st2 的值,并仅在以下情况下替换它们它不是-1。但这会在较大的数据帧中花费大量时间,这就是为什么我想找到最有效的方法来做到这一点。
www说
一只萌萌小番薯
哆啦的时光机
相关分类