适用场景:
插入数据到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