如何比较两个Pandas Series并去除ser1与ser2的重复元素
从ser1中移除与ser2重复的元素
要实现从ser1里去掉和ser2重复的元素,保留ser1独有的值,直接用isin()配合布尔索引就能搞定,具体步骤如下:
- 先导入Pandas并定义两个Series:
import pandas as pd ser1 = pd.Series([1,2,3,4,5]) ser2 = pd.Series([4,5,6,7,8])
- 筛选ser1中不在ser2内的元素,重新赋值给ser1:
ser1 = ser1[~ser1.isin(ser2)]
- 验证结果:
直接打印ser1会得到带索引的Series:
print(ser1) # 输出: # 0 1 # 1 2 # 2 3 # dtype: int64
如果想要和你示例里的格式一致,可以转成字符串输出:
print("out =", ' '.join(map(str, ser1.tolist()))) # 输出:out = 1 2 3
补充说明
你之前用的pd.concat()只是用来合并多个Series/DataFrame,本身没有筛选去重的作用,所以没法直接得到想要的结果。而isin()方法可以快速判断元素是否存在于另一个序列中,配合取反符号~就能精准筛选出ser1独有的元素。
内容的提问来源于stack exchange,提问作者SnowManShow
相关产品推荐
相关产品推荐

