Pandas中如何将DataFrame列与单值对比并筛选匹配行
实现代码
直接提取df1中的目标匹配值,通过布尔索引筛选行即可:
import pandas as pd # 原有DataFrame定义 data = {'a':['a','b','c','d','e','f','g'], 'b':['Y','N','Y','Y','Y','N','Y']} df = pd.DataFrame(data) data1 = ['N'] df1 = pd.DataFrame(data1, columns=['Y/N']) # 核心筛选逻辑 match_value = df1.iloc[0, 0] # 取df1第一个单元格的存储值,也可写为df1.loc[0, 'Y/N'] result = df[df['b'] == match_value].reset_index(drop=True)
执行后result的输出和你预期完全一致:
a b 0 b N 1 f N
如果后续df1中会存入多个待匹配值,可以直接用isin()方法,单值、多值匹配场景都能兼容,不需要调整逻辑:
result = df[df['b'].isin(df1['Y/N'])].reset_index(drop=True)
内容的提问来源于stack exchange,提问作者aaklbfklfkfkl
相关产品推荐
相关产品推荐

