如何用Python删除CSV中满足特定值条件的整行数据
Python删除CSV指定行实现方案
你现有基础代码存在两处可修正的问题:一是没有导入pandas库就直接使用pd别名,二是没必要将DataFrame对象挂载到numpy的np对象下,直接声明普通变量存储即可。
以下是完整实现代码:
import pandas as pd # 读取目标CSV文件,保留你原有的制表符分隔配置 df = pd.read_csv('C:/Users/.../Data.csv', delimiter='\t') # 方式1:直接写保留条件,保留Colum.X不大于5且Colum.Y不大于20的行 df = df[(df['Colum.X'] <= 5) & (df['Colum.Y'] <= 20)] # 方式2:写删除条件后取反,和方式1效果完全一致,选你容易理解的写法即可 # df = df[~((df['Colum.X'] > 5) | (df['Colum.Y'] > 20))] # 如果你需要只保留Colum.X、Colum.Y两列就保留这行,不需要可以删除 df = df[['Colum.X', 'Colum.Y']] # 处理完成后保存结果到CSV,index=False表示不导出pandas自动生成的行索引 df.to_csv('C:/Users/.../Filtered_Data.csv', sep='\t', index=False)
注意事项:
- 条件判断中的
&代表逻辑与,|代表逻辑或,每个独立的判断条件必须用括号包裹,否则会因为运算符优先级问题报错 - 如果需要直接覆盖原CSV文件,把
to_csv的输出路径改成原文件路径即可,建议提前备份原文件避免数据丢失
内容的提问来源于stack exchange,提问作者Lony Sz
相关产品推荐
相关产品推荐

