Python 读取数据帧时跳过包含特定值的特定行

Python 读取数据帧时跳过包含特定值的特定行,python,csv,pandas,dataframe,Python,Csv,Pandas,Dataframe,使用命令pd.read\u csv读取csv时, 如何跳过行中包含特定值的行? 如果在第50、55行中,第一列的值为100,那么我想在读取csv文件时跳过这些行。 如何将这些命令放入诸如pd.read_csv(“read.csv”)之类的读入命令中? 该值的总长度为300 唯一的方法是预解析文件。使用生成器读取文件,然后只生成所需的行。然后,您可以使用它将所需的行读取到StringIO对象中,并将该对象传递到read\u csv的文件路径中 import StringIO import pand

使用命令pd.read\u csv读取csv时, 如何跳过行中包含特定值的行? 如果在第50、55行中,第一列的值为100,那么我想在读取csv文件时跳过这些行。 如何将这些命令放入诸如pd.read_csv(“read.csv”)之类的读入命令中?
该值的总长度为300

唯一的方法是预解析文件。使用生成器读取文件,然后只生成所需的行。然后,您可以使用它将所需的行读取到
StringIO
对象中,并将该对象传递到
read\u csv
的文件路径中

import StringIO
import pandas as pd

def read_file(file_name):
    with open(file_name, 'r') as fh:
        for line in fh.readlines():
            parts = line.split(',')
            if parts[0] != '100':
                yield line

stream = StringIO.StringIO()
stream.writelines(read_file('foo.txt'))
stream.seek(0)

df = pd.read_csv(stream)

后来把它们扔掉和根本不读有什么区别?您可以简单地执行以下操作:

pd.read_csv('file.csv').query('col1 != 100')

值的长度是多少?稍后删除它们与根本不读取它们之间的区别是什么?您可以简单地执行以下操作:
pd.read\u csv('file.csv')。query('col1!=100')
…^^^^^^^^^^@卡提克,为什么这不是一个答案?因为,@piRSquared,我不确定OP到底想要什么。另外,我不知道该列的名称是什么。但是,你是对的,我应该把它作为答案发布,让OP对它发表评论。实际上没有区别!非常感谢。成功了!更一般地说,不同之处在于该值可能与所需列的数据类型不匹配。您可以始终
.inference_objects()
()稍后再使用。