2016-05-08 107 views
1

我有一個csv文件,其中有很多列。這是給學生的。我只想顯示男生和他們的名字。我使用1男學生和0女學生。我的代碼是:如何使用熊貓來顯示csv文件的特定列?

import pandas as pd 

data = pd.read_csv('normalizedDataset.csv') 

results = pd.concat([data['name'], ['students']==1]) 

print results 

我有這個錯誤:

TypeError: cannot concatenate a non-NDFrame object

誰能幫助請。謝謝。

回答

1

當您加載csv時,您可以指定只讀取數據的某些列名稱。然後使用loc找到所有值,其中students等於1

data = pd.read_csv('normalizedDataset.csv', usecols=['name', 'students']) 
data = data.loc[data.students == 1, :] 

順便說一句,你原來的錯誤是因爲你試圖連接具有一個假數據幀。

>>> ['students']==1 
False 
+0

謝謝亞歷山大。是的,它工作得很好。 –

0

沒有必要concat,你剝離的東西,而不是建設。

嘗試:

data[data['friends']==1]['name'] 
+1

您正在執行鏈接索引,我建議'data.loc [data ['friends'] == 1,'name']'在語義上是正確的,因此OP在視圖上運行,而不是在視圖上運行復制 – EdChum

+0

謝謝帕特里克。現在,它看起來更好,但是當我想將它們打印到目錄中的txt文件中時,它會給出錯誤。 (結果) outString = str(results [i])結果是, )+'' fileHandle.write(outString) fileHandle.close() –

+0

謝謝EdChum。是的,我試過你的代碼段,它給了我需要的結果。但是,我認爲它不會傳遞一個int到一個df文件中打印。有什麼想法嗎? –

0

要爲什麼你收到錯誤提供清晰:

你試圖CONCAT的第二件事是:

['students']==1 

這是不是一個NDFrame目的。你想用它替換它。

data[data['students']==1]['students'] 
+0

謝謝piRSquared。怎麼樣的學生的名字,我該如何顯示它? –