如何基于指定国家列表从Pandas DataFrame创建新DataFrame
高效筛选pandas DataFrame中指定国家的数据
你直接用df['Country Name'] == countries报错的原因是:pandas无法将长度为11507的Series(对应原DataFrame的行数)和长度为4的列表做逐元素比较,两者长度不匹配,因此触发ValueError。
针对多值筛选场景,pandas提供了专门的isin()方法,这是最简洁高效的实现方式,尤其适合筛选10-12个国家的需求:
# 定义目标国家列表(可直接扩展到10-12个) countries = ['European Union','United Kingdom','United States','Spain', 'Germany', 'France'] # 筛选出属于目标列表的行 df2 = df[df['Country Name'].isin(countries)]
如果需要确认列表中的国家是否都存在于原数据中(避免因拼写错误导致漏选),可以添加验证步骤:
# 检查列表中的国家是否都在原DataFrame的国家集合里 missing = [c for c in countries if c not in df['Country Name'].unique()] if missing: print(f"注意:以下国家未在数据中找到:{missing}")
内容的提问来源于stack exchange,提问作者kazordoon
相关产品推荐
相关产品推荐

