pandas dataframe取差集:删掉已存在的数据,保留未插入的数据

适用场景:

插入数据到mysql中,中途中断,导致部分数据未插入成功。避免下次插入时插入了重复的数据。

思路:

1、读取已插入的数据,

2、读取全部数据(包含已插入和未插入的),

3、将已插入的数据添加到全部数据中,产生重复数据,

4、删除所有重复的数据。

示例代码:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.arange(15).reshape((5, 3)))  # 总数据
# 输出df:
     0    1    2
0    0    1    2
1    3    4    5
2    6    7    8
3    9    10    11
4    12    13    14


df2 = df[:3]  # 已插入的数据
# 输出df2:
     0    1    2
0    0    1    2
1    3    4    5
2    6    7    8


df = df.append(df2)  # 将已插入的数据添加到全部数据里面,生成重复数据
df = df.append(df2)  # 需要添加两次,避免将df2在df中没有的数据添加了
# 输出df:
     0    1    2
0    0    1    2
1    3    4    5
2    6    7    8
3    9    10    11
4    12    13    14
0    0    1    2
1    3    4    5
2    6    7    8
0    0    1    2
1    3    4    5
2    6    7    8


df = df.drop_duplicates(keep=False)  # 删除具有重复数据的行,即得到差集
# 输出df:
     0    1    2
3    9    10    11
4    12    13    14
原文地址:https://www.cnblogs.com/jaysonteng/p/12360604.html