# 查找某个字段是否重复 '单号',删除所有重复的行,一个不留,形成 df2表,原来df1和df2做差吧(广义上的),单拉出一张表 df3,发现行数df3+df2<df1?
import pandas as pd
df1 = pd.read_pickle(r'E:\data.pickle')
df2 = df1.drop_duplicates(subset='单号', keep=False)
df2_list = df2.index.tolist() # 列表,索引依据
df3 = df1[~df1.index.isin(df2_list)] # 广义做差
【以下回答由 GPT 生成】
以下是使用pandas的isin方法来查找重复行并删除遗漏数据的具体步骤:
import pandas as pd
# 读取数据
df1 = pd.read_pickle('E:\data.pickle')
# 使用isin方法查找重复值并删除所有重复的行,形成df2表
df2 = df1[df1.duplicated(subset='单号', keep=False)]
请注意,我们使用了df1.duplicated()方法来查找重复行,然后配合isin方法,仅保留重复行。
# 将df2的索引转换为列表
df2_list = df2.index.tolist()
# 对df1进行广义做差,得到df3表
df3 = df1[~df1.index.isin(df2_list)]
这样,我们就使用pandas的isin方法完成了查找重复行并删除遗漏数据的步骤。如果代码中出现错误,可能是数据类型不匹配导致的,或者数据文件路径不正确,请确保这些细节正确。如果还有其他问题,请告诉我。
【相关推荐】
原df是通过合并来的,索引没有重置,就是索引中0123...0123...有多个,因为索引有相同的,所以查询就查多了,取反就少了