df1、df2 があり、マージするキーを列 A としたとき、
df2[~df2["A"].isin(df1["A"])]
で df2 にしか含まれていない行を抽出してから、pd.concat()
でマージすればいいと思います。
ある列でマージする場合
python
1import pandas as pd
2
3df1 = pd.DataFrame({"A": [1, 2, 3], "B": ["a", "b", "c"]})
4df2 = pd.DataFrame({"A": [3, 4, 5], "B": ["d", "e", "f"]})
5
6df = pd.concat([df1, df2[~df2["A"].isin(df1["A"])]])
7print(df)
8# A B
9# 0 1 a
10# 1 2 b
11# 2 3 c
12# 1 4 e
13# 2 5 f
インデックスでマージする場合
python
1import pandas as pd
2
3df1 = pd.DataFrame({"B": ["a", "b", "c"]}, index=[1, 2, 3])
4df2 = pd.DataFrame({"B": ["d", "e", "f"]}, index=[3, 4, 5])
5
6df = pd.concat([df1, df2[~df2.index.isin(df1.index)]])
7print(df)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。