导入csv数据后如何按指定列值筛选生成新DataFrame
实现DataFrame按指定列值筛选的方案
以下操作默认你已经安装并导入pandas库:
import pandas as pd # 第一步:读取你的csv文件为DataFrame df = pd.read_csv("你的.csv文件路径")
核心筛选操作
方法1:基础布尔索引筛选(最简写法)
直接匹配Field列值为Oseberg的行,生成新的DataFrame:
new_df = df[df["Field"] == "Oseberg"]
如果原数据的Field列存在首尾空格、大小写不统一的问题,可以增加清洗逻辑避免筛选遗漏:
# 先去除列值首尾空白、转小写后匹配,兼容格式不规范的原始数据 new_df = df[df["Field"].str.strip().str.lower() == "oseberg"]
方法2:loc方法(更规范,避免副本警告)
如果后续需要对筛选出的new_df做修改操作,推荐用loc方法显式指定行列范围,避免触发pandas的SettingWithCopyWarning警告:
# : 表示保留原表所有列 new_df = df.loc[df["Field"].str.strip() == "Oseberg", :]
如果Field列存在空值,可增加非空判断避免运行报错:
new_df = df.loc[(pd.notna(df["Field"])) & (df["Field"].str.strip() == "Oseberg"), :]
结果验证
运行以下代码即可查看筛选后的结果:
print(new_df)
输出符合你要求的格式:
Field Formation Depth 0 Oseberg Brage 1225 3 Oseberg Stockberg 1600
内容的提问来源于stack exchange,提问作者Porsche Adams
相关产品推荐
相关产品推荐

