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

带筛选读取CSV文件:如何筛选'M'类型记录到Pandas DataFrame

读取带记录类型标识的CSV并筛选指定类型记录

嘿,这个需求其实挺常见的,我来给你拆解成两步搞定:先把CSV读进Pandas DataFrame,再精准筛选出首字符为'M'的记录就行。分两种情况给你讲,覆盖有表头和无表头的场景:


情况1:CSV文件有表头(第一行是列名)

假设你的CSV长这样(第一行是列名,第一个字段用来标识记录类型):

record_id,product,price
M001,laptop,999
X002,phone,599
M003,tablet,399

对应的代码如下:

import pandas as pd

# 1. 读取CSV,默认第一行作为表头
df = pd.read_csv('your_data.csv')

# 2. 筛选第一个字段(这里列名叫'record_id')首字符为'M'的记录
# 用str[0]提取每个值的第一个字符,再和'M'做匹配
filtered_df = df[df['record_id'].str[0] == 'M']

# 输出结果看看
print(filtered_df)

情况2:CSV文件没有表头(第一行就是数据)

如果你的CSV没有表头,第一行直接是数据,比如:

M001,laptop,999
X002,phone,599
M003,tablet,399

这时候需要指定header=None让Pandas自动给列分配索引,再通过列索引筛选:

import pandas as pd

# 1. 读取无表头CSV,header=None会生成0、1、2...这样的列名
df = pd.read_csv('your_data.csv', header=None)

# 2. 筛选第0列(第一个字段)首字符为'M'的记录
filtered_df = df[df[0].str[0] == 'M']

print(filtered_df)

额外注意事项

  • 如果第一个字段存在空值,直接用str[0]会报错,建议先填充空值再筛选:
    # 处理空值的版本
    filtered_df = df[df['record_id'].str[0].fillna('') == 'M']
    
  • 如果你的CSV不是用逗号分隔(比如制表符、分号),记得用sep参数指定分隔符,比如sep=';'或者sep='\t'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:12:28