如何过滤Pandas read_csv函数中的行?
我如何过滤使用pandas将CSV加载到内存中的哪一行? 这似乎是一个应该在read_csv
find的read_csv
。 我错过了什么吗?
例如:我们有一个带有时间戳列的CSV,我们只想加载时间戳大于给定常量的行。
在将CSV文件加载到pandas物件之前,没有select过滤行。
您可以加载文件,然后使用df[df['field'] > constant]
进行筛选,或者如果您有一个非常大的文件,并且担心内存不足,则使用迭代器并在连接时应用筛选器你的文件大块例如:
iter_csv = pandas.read_csv('file.csv', iterator=True, chunksize=1000) df = pd.concat([chunk[chunk['field'] > constant] for chunk in iter_csv])
您可以改变块大小以适应您的可用内存。 在这里看到更多的细节。
我没有find一个简单的方法在read_csv
上下文中做到这read_csv
。 但是, read_csv
返回一个DataFrame,它可以通过布尔向量df[bool_vec]
select行来过滤:
filtered = df[(df['timestamp'] > targettime)]
这是selectdf中的所有行(假设df是任何DataFrame,例如read_csv
调用的结果,至less包含datetime列timestamp
), timestamp
列中的值大于targettime的值。 类似的问题 。