如何在DataFrame中同时选取多个值?代码报错原因咨询
DataFrame多值选取报错原因及解决方法
报错原因
你代码里的df["Country"]== ["United Kingdom", "Türkiye", "OECD - Total"]是问题核心:
- pandas中,Series和列表直接用
==做比较时,仅当Series长度与列表长度完全一致时才会执行元素级匹配,否则会触发ValueError。 - 更关键的是,这个写法本身不符合你「筛选Country列属于指定列表中任意值」的需求,
==无法实现多值匹配逻辑。
解决方法
改用pandas内置的isin()方法来实现多值筛选,正确代码如下:
df[(df["Variable"] == "% Recycling") & (df["Country"].isin(["United Kingdom", "Türkiye", "OECD - Total"]))]
isin()会逐一检查Series中的每个元素是否存在于传入的列表中,返回对应的布尔Series,完美适配多值筛选的场景。
内容的提问来源于stack exchange,提问作者user19562955
相关产品推荐
相关产品推荐

