[英]Applying Conditions on Pandas DataFrame Columns before reading csv or tsv files
如果我已經知道列名和類型,是否可以在讀取csv或tsv文件之前為DataFrame列設置條件(過濾器)? 如果是,怎么辦?
例如:考慮在一個非常大的文件中有兩個數字列(col1和col2)。 我不想將整個文件加載到內存中,僅選擇col1大於col2的那些行。 因此,首先,我想在數據幀上設置條件,使其只能從csv文件中col1大於col2的那些行讀取數據。 希望我的解釋有意義。
謝謝
您可以為此使用blaze ,這是與pandas
並列的便捷工具。
假設輸入文件為:
a,b
1,2
3,4
5,3
3,6
6,1
然后,我們打開文件並查詢數據-請注意,在您嘗試實現/訪問它之前,不會執行查詢:
import blaze
import pandas as pd
csv_data = blaze.Data('input.csv')
query = csv_data[csv_data['a'] > csv_data['b']]
df = pd.DataFrame.from_records(query, columns=query.fields)
然后給df
作為:
a b
0 5 3
1 6 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.