数据比对去重

本文介绍了一种使用Python的pandas库和numpy库来对比两个Excel列中数据的方法,并统计了两列数据存在的差异数量。通过将数据读取到DataFrame,然后利用集合运算找出在A列存在而B列不存在的数据,以及B列存在而A列不存在的数据。最后,统计了这些差异数据的出现次数,并将结果保存为新的Excel文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import pandas as pd
import numpy as np
from collections import Counter

df = pd.read_excel(r'E:\Anaconda3\work\csv.xlsx')

# 求出a列存在,b列不存在的数据。
ab = [i for i in set(df["a"]) - set(df["b"]) if i is not np.nan]
# 求出b列存在,a列不存在的数据。
ba = [i for i in set(df["b"]) - set(df["a"]) if i is not np.nan]

a = Counter(df["a"])
b = Counter(df["b"])
# 统计出现的个数,以字典形式返回

xa = []
xb = []
ji = a.keys() & b.keys()
for i in ji:
    ai = a.get(i)
    bi = b.get(i)
    if ai > bi:
        count = ai-bi
        for k in range(count):
            xa.append(i)
    elif bi > ai:
        count = bi-ai
        for k in range(count):
            xb.append(i)

for val in ab:
    sa = a.get(val)
    if sa !=None:
        for coun in range(sa):
            xa.append(val)
for val in ba:
    sb = b.get(val)
    if sb !=None:
        for coun in range(sb):
            xb.append(val)
ds = pd.DataFrame([xa,xb]).T
ds.columns = ['xa','xb']
ds.to_excel(r'E:\Anaconda3\work\result.xlsx',index=False)

来源之知乎

https://www.zhihu.com/question/385996087/answer/1139595963

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值