如何过滤Pandas read_csv函数中的行?
我如何过滤使用pandas将CSV加载到内存中的哪一行? 这似乎是一个应该在read_csvfind的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的值。 类似的问题 。