NGUBIN 发表于 2024-3-20 22:24

pandas操作Excel比对两列数据的缺失情况(更多方法可查看大佬的评论)

本帖最后由 NGUBIN 于 2024-4-15 20:02 编辑

```python
import pandas as pd

# 加载Excel文件
df = pd.read_excel('名单比对.xls',header=None)# 替换为你的Excel文件路径

# 去除所有空值
df.dropna(inplace=True)

# 获取A列和B列的数据
column_a = df.iloc[:, 0].tolist()
column_b = df.iloc[:, 1].tolist()

# 找出B列中不在A列中的元素
print(column_a,len(column_a));
print(column_b,len(column_b));

num=[]
for i in column_a:
    if i not in column_b:
      num.append(i)


print(num)
not_in_a =

# 输出结果
print("\n******** 未填名单 ********")
for item in not_in_a:
    print("----> "+item)

```

lisongmei 发表于 2024-3-21 10:16

path=r"C:\Users\110\Desktop\a.xlsx"
df=pd.read_excel(path,dtype='str')
# 将第二列拼成一个正则表达示给match去匹配
df=df[~df['编号1'].str.match(pat='|'.join(df['编号 2']),flags=True)]
print(df)

直接也能判断哇。

sharehappy01 发表于 2024-3-21 08:00

楼主,麻烦详细说下每个语句的功能,在下有点代码恐慌。

wapjsx 发表于 2024-3-21 08:12

可惜了 pandas 中 numpy 类似的功能~~~
:lol

anchovy126 发表于 2024-3-21 08:22

这是找出B列中不在A列中的元素?我看着怎么像在A列中找不在B列的。

2513002960 发表于 2024-3-21 09:00

其实可以直接合并,然后筛选在A表的列有值但是在B表的列为空的,这样就不需要循环了

Tianshan 发表于 2024-3-21 10:42

lisongmei 发表于 2024-3-21 10:16
path=r"C:%users\110\Desktop\a.xlsx"
df=pd.read_excel(path,dtype='str')
#...

代码更少了,直接了当:lol

NGUBIN 发表于 2024-3-21 19:46

sharehappy01 发表于 2024-3-21 08:00
楼主,麻烦详细说下每个语句的功能,在下有点代码恐慌。

楼下有个更好的方案{:1_919:}

NGUBIN 发表于 2024-3-21 19:47

2513002960 发表于 2024-3-21 09:00
其实可以直接合并,然后筛选在A表的列有值但是在B表的列为空的,这样就不需要循环了

这个方法也很好

NGUBIN 发表于 2024-3-21 19:49

anchovy126 发表于 2024-3-21 08:22
这是找出B列中不在A列中的元素?我看着怎么像在A列中找不在B列的。

是有点问题噢, 我看看怎么修改
页: [1] 2
查看完整版本: pandas操作Excel比对两列数据的缺失情况(更多方法可查看大佬的评论)