如何实现两列数据筛选:仅保留# Externo独有的数值
解决方案
核心思路
要筛选仅存在于# Externo列、完全不在Nro Envio ML列中的数值,不能只对比同一行的两个值,而是要检查整个列的存在性,同时需确保两列数据类型一致,避免因类型差异导致匹配失效。
代码实现
import pandas as pd # 先处理Nro Envio ML列(沿用你原有的数据清洗逻辑) df2 = df2.dropna(subset=['Unnamed: 13']) df2 = df2[df2['Unnamed: 13'] != 'Nro. Envío'] df2['Nro Envio ML'] = df2['Unnamed: 13'] # 提取目标列 dfn = df2[["# Externo", "Nro Envio ML"]] # 统一转为字符串类型,避免数值/字符串不匹配问题 dfn['# Externo'] = dfn['# Externo'].astype(str) dfn['Nro Envio ML'] = dfn['Nro Envio ML'].astype(str) # 筛选仅存在于# Externo列的值并去重 unique_values = dfn[~dfn['# Externo'].isin(dfn['Nro Envio ML'])]['# Externo'].unique() # 输出结果 if len(unique_values) > 0: print(unique_values) else: print("No strange sales")
关键说明
~dfn['# Externo'].isin(dfn['Nro Envio ML']):isin()检查值是否存在于Nro Envio ML列,~取反得到仅在# Externo列出现的值unique():去除重复的匹配结果,避免重复输出同一数值
内容的提问来源于stack exchange,提问作者Franco Vera
相关产品推荐
相关产品推荐

