簡體   English   中英

選擇特定的CSV列(過濾) - Python / pandas

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

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