Pandas用列表过滤DataFrame无输出问题及替代方法咨询
解决方法
问题出在你的list_input元素是单元素元组,而DataFrame中my col name列的内容是字符串,两者类型不匹配,导致isin()无法匹配到结果。
你可以先把元组列表转换成纯字符串列表,再进行匹配:
# 将元组列表提取为字符串列表 clean_list = [val[0] for val in list_input] # 执行匹配 in_list_df = df[df['my col name'].isin(clean_list)]
如果不想额外生成新列表,也可以直接在isin()里处理:
in_list_df = df[df['my col name'].isin([val[0] for val in list_input])]
另外,也可以用apply()配合lambda表达式直接判断,但这种方式性能不如列表推导式高效,适合小数据量场景:
in_list_df = df[df['my col name'].apply(lambda x: (x,) in list_input)]
内容的提问来源于stack exchange,提问作者Dot Net Dev 19
相关产品推荐
相关产品推荐

