回答編集履歴

2

d

2020/08/26 10:00

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -3,6 +3,8 @@
3
3
  `df2[~df2["A"].isin(df1["A"])]` で df2 にしか含まれていない行を抽出してから、`pd.concat()` でマージすればいいと思います。
4
4
 
5
5
 
6
+
7
+ ## ある列でマージする場合
6
8
 
7
9
 
8
10
 
@@ -35,3 +37,27 @@
35
37
  # 2 5 f
36
38
 
37
39
  ```
40
+
41
+
42
+
43
+ ## インデックスでマージする場合
44
+
45
+
46
+
47
+ ```python
48
+
49
+ import pandas as pd
50
+
51
+
52
+
53
+ df1 = pd.DataFrame({"B": ["a", "b", "c"]}, index=[1, 2, 3])
54
+
55
+ df2 = pd.DataFrame({"B": ["d", "e", "f"]}, index=[3, 4, 5])
56
+
57
+
58
+
59
+ df = pd.concat([df1, df2[~df2.index.isin(df1.index)]])
60
+
61
+ print(df)
62
+
63
+ ```

1

d

2020/08/26 10:00

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,6 +1,6 @@
1
1
  df1、df2 があり、マージするキーを列 A としたとき、
2
2
 
3
- `df2[~df2["A"].isin(df1["A"])` で df2 にしか含まれていない行を抽出してから、`pd.concat()` でマージすればいいと思います。
3
+ `df2[~df2["A"].isin(df1["A"])]` で df2 にしか含まれていない行を抽出してから、`pd.concat()` でマージすればいいと思います。
4
4
 
5
5
 
6
6