You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas按地区筛选CSV数据子集?

解决Pandas筛选指定地区数据子集的问题

你的代码目前有几个关键问题,导致无法正确筛选数据:

  1. 函数参数传入的df被内部重新赋值覆盖,完全没用到外部传入的DataFrame
  2. 没有实现核心的按地区筛选逻辑
  3. 返回值不符合需求,你需要返回筛选后的子集,而非原数据和地区名

修正后的完整代码

import pandas as pd
import os

# 先在函数外部读取CSV,避免重复IO操作
path = os.getcwd()
df = pd.read_csv(os.path.join(path, '2020.csv'))
pd.set_option("display.precision", 2)

def CreateSubsetPerRegion(df, region):
    # 用布尔索引筛选指定地区的行
    region_subset = df[df['Region'] == region]
    return region_subset

# 调用函数并展示结果
display(CreateSubsetPerRegion(df,'East Asia'))
display(CreateSubsetPerRegion(df,'Central and Eastern Europe'))

关键逻辑说明

  • 布尔索引筛选:df[df['Region'] == region]会生成一个布尔数组,标记每一行的Region是否等于目标地区,然后用这个数组从原DataFrame中提取匹配的行,得到对应地区的子集。
  • 避免重复读文件:把pd.read_csv放到函数外面,只执行一次,提升效率,也符合函数的单一职责原则(函数只负责筛选,不负责读取文件)。
  • 返回正确结果:直接返回筛选后的region_subset,这就是你需要的指定地区DataFrame。

如果需要处理地区名称大小写不一致的情况,可以改成不区分大小写的筛选:

region_subset = df[df['Region'].str.lower() == region.lower()]

内容的提问来源于stack exchange,提问作者NoobAtProgramming

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:26:01