Python 更新两个具有相同列和一些不同行的数据框
Python Update two dataframes with identical columns and a few differing rows
我正在连接两个具有相同列的数据框。我想更新第一个数据框。但是,我的代码创建了额外的列,但它没有更新。
我的代码:
left = pd.DataFrame({"key": ["K0", "K1", "K2", "K3"],
"A": ["NaN", "NaN", "NaN", "NaN"],
"B": ["B0", "B1", "B2", "B3"],})
right = pd.DataFrame({"key": ["K1", "K2", "K3"],
"A": ["C1", "C2", "C3"],
"B": [ "B1", "B2", "B3"]})
result = pd.merge(left, right, on="key",how='left')
当前输出:
result =
key A_x B_x A_y B_y
0 K0 NaN B0 NaN NaN
1 K1 NaN B1 C1 B1
2 K2 NaN B2 C2 B2
3 K3 NaN B3 C3 B3
预期输出:
result =
key B A
0 K0 B0 NaN
1 K1 B1 C1
2 K2 B2 C2
3 K3 B3 C3
result = left.set_index("key").combine_first(right.set_index("key")).reset_index()
print(result)
输出
key A B
0 K0 NaN B0
1 K1 C1 B1
2 K2 C2 B2
3 K3 C3 B3
我正在连接两个具有相同列的数据框。我想更新第一个数据框。但是,我的代码创建了额外的列,但它没有更新。
我的代码:
left = pd.DataFrame({"key": ["K0", "K1", "K2", "K3"],
"A": ["NaN", "NaN", "NaN", "NaN"],
"B": ["B0", "B1", "B2", "B3"],})
right = pd.DataFrame({"key": ["K1", "K2", "K3"],
"A": ["C1", "C2", "C3"],
"B": [ "B1", "B2", "B3"]})
result = pd.merge(left, right, on="key",how='left')
当前输出:
result =
key A_x B_x A_y B_y
0 K0 NaN B0 NaN NaN
1 K1 NaN B1 C1 B1
2 K2 NaN B2 C2 B2
3 K3 NaN B3 C3 B3
预期输出:
result =
key B A
0 K0 B0 NaN
1 K1 B1 C1
2 K2 B2 C2
3 K3 B3 C3
result = left.set_index("key").combine_first(right.set_index("key")).reset_index()
print(result)
输出
key A B
0 K0 NaN B0
1 K1 C1 B1
2 K2 C2 B2
3 K3 C3 B3