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

如何用Python基于CSV列中的特定字符串筛选并删除无关数据行

解决方案

1. 准备工作:安装pandas

如果还没安装pandas库,打开命令行执行以下命令:
pip install pandas

2. 通用筛选代码实现

下面的代码可以快速筛选出包含指定国家的行,后续只需修改目标国家变量就能适配新的筛选需求:

import pandas as pd

# 定义要筛选的目标国家,后续换其他国家直接修改这里即可
target_country = "Japan"

# 读取CSV数据集,替换成你实际的文件路径
df = pd.read_csv("your_sales_data.csv")

# 筛选Country列包含目标国家的行
# str.contains()会自动匹配逗号分隔的内容,比如"Fiji, Japan, India"这类行都会被选中
# 加上case=False可忽略大小写,适配"japan""JAPAN"这类情况,不需要的话可以删除该参数
filtered_df = df[df["Country"].str.contains(target_country, case=False)]

# 将筛选后的结果保存为新CSV,index=False避免生成多余的索引列
filtered_df.to_csv("filtered_sales_data.csv", index=False)

3. 代码关键部分解释

  • pd.read_csv():读取指定路径的CSV文件,替换成你的数据集路径即可。
  • df["Country"].str.contains(target_country):逐行检查Country列的字符串是否包含目标国家,返回布尔值序列,用这个序列就能筛选出符合条件的行。
  • to_csv(index=False):保存结果时不写入pandas自动生成的索引列,保证输出的CSV格式和原数据一致。

4. 大型CSV的优化方案(可选)

如果你的数据集特别大,一次性加载会占用过多内存,可以用分块读取的方式处理:

import pandas as pd

target_country = "Japan"
chunk_size = 10000  # 每次读取1万行,可根据你的内存情况调整

# 初始化空DataFrame存储筛选结果
filtered_df = pd.DataFrame()

# 分块读取并筛选
for chunk in pd.read_csv("your_sales_data.csv", chunksize=chunk_size):
    chunk_filtered = chunk[chunk["Country"].str.contains(target_country, case=False)]
    filtered_df = pd.concat([filtered_df, chunk_filtered])

# 保存最终结果
filtered_df.to_csv("filtered_sales_data.csv", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 04:09:22