当您使用命令pd.read_csv读取csv时, 如何跳过连续包含特定值的行? 如果在第50行,第55行,第1列的值为100,所以我想在读取csv文件时跳过这些行。 我如何将这些命令放在pd.read_csv('read.csv')这样的读入命令中? 该值的总长度为300.
答案 0 :(得分:2)
稍后放弃它们而不读它们有什么区别?你可能只是这样做:
pd.read_csv('file.csv').query('col1 != 100')
答案 1 :(得分:1)
唯一的方法是预解析文件。使用生成器读取文件,然后只使用yield
所需的行。然后,您可以使用它将所需的行读入StringIO
对象,并将该对象传递到文件路径的read_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)