簡體   English   中英

在讀取csv或tsv文件之前,在Pandas DataFrame列上應用條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM