[英]Select specific CSV columns (Filtering) - Python/pandas
我有一個非常大的CSV文件,包含100列。 為了說明我的問題,我將使用一個非常基本的例子。
我們假設我們有一個CSV文件。
in value df 0 975 f01 5 1 976 F 4 2 977 d4 1 3 978 B6 0 4 979 2C 0
我想選擇一個特定的列。
import pandas
data = pandas.read_csv("ThisFile.csv")
為了選擇我使用的前兩列
data.ix[:,:2]
為了選擇不同的列,如第2和第4列。 我該怎么辦?
還有另一種方法可以通過重寫CSV文件來解決此問題。 但它是巨大的文件; 所以我就是這樣避免的。
這將選擇第二列和第四列(因為Python使用基於0的索引):
In [272]: df.iloc[:,(1,3)]
Out[272]:
value f
0 975 5
1 976 4
2 977 1
3 978 0
4 979 0
[5 rows x 2 columns]
df.ix
可以按位置或標簽進行選擇。 df.iloc
始終按位置選擇。 按位置df.iloc
索引時,請使用df.iloc
更明確地表明您的意圖。 它也快一點,因為Pandas不必檢查您的索引是否使用標簽。
另一種可能是使用usecols
參數:
data = pandas.read_csv("ThisFile.csv", usecols=[1,3])
這將僅將第二列和第四列加載到data
DataFrame中。
如果您更喜歡按名稱選擇列,則可以使用
data[['value','f']]
value f
0 975 5
1 976 4
2 977 1
3 978 0
4 979 0
正如Wai Yip Tung所說,您可以通過指定列的名稱來過濾數據幀,例如:
import pandas as pd
data = pd.read_csv("ThisFile.csv")[['value','d']]
這解決了我的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.