import pandas as pd
df1 = pd.DataFrame(
dict(
col_1=[0,1,2,3,4],
col_2=[10,11,12,13,14]
),
index=['A','B','C','D','E'])
df2 = pd.DataFrame(
dict(
col_1=[0,1,8,3,0],
col_2=[10,11,12,13,14]
),
index=['A','B','C','D','X'])
print('df1')
display(df1)
print('df2')
display(df2)
df1
| col_1 | col_2 | |
|---|---|---|
| A | 0 | 10 |
| B | 1 | 11 |
| C | 2 | 12 |
| D | 3 | 13 |
| E | 4 | 14 |
df2
| col_1 | col_2 | |
|---|---|---|
| A | 0 | 10 |
| B | 1 | 11 |
| C | 8 | 12 |
| D | 3 | 13 |
| X | 0 | 14 |
all = pd.concat([df1, df2])
print('all')
all
all
| col_1 | col_2 | |
|---|---|---|
| A | 0 | 10 |
| B | 1 | 11 |
| C | 2 | 12 |
| D | 3 | 13 |
| E | 4 | 14 |
| A | 0 | 10 |
| B | 1 | 11 |
| C | 8 | 12 |
| D | 3 | 13 |
| X | 0 | 14 |
intersection = all[all.duplicated()]
print('intersection')
intersection
intersection
| col_1 | col_2 | |
|---|---|---|
| A | 0 | 10 |
| B | 1 | 11 |
| D | 3 | 13 |
# df1のインデックスに対し、ユニークな行を探す
df1_unique = df1[~df1.index.isin(intersection.index)]
print('df1_unique')
df1_unique
df1_unique
| col_1 | col_2 | |
|---|---|---|
| C | 2 | 12 |
| E | 4 | 14 |
# df2のインデックスに対し、ユニークな行を探す
df2_unique = df2[~df2.index.isin(intersection.index)]
print('df2_unique')
df2_unique
df2_unique
| col_1 | col_2 | |
|---|---|---|
| C | 8 | 12 |
| X | 0 | 14 |