2017-05-26 41 views
1

比方說,我有一個CSV文件,其內容布爾索引的列值存儲爲一個變量在python

Student_Name Grade 
Mary  75 
John  65 
Stella 90 

我想Stella的等級存儲爲一個變量。 我當前的代碼看起來像:

import pandas as pd 
student_grades = pd.read_csv('.../Term2grades.csv') 

x = student_grades.loc[student_grades['Student_Name'] == "Stella", ['Grade']] 
print(x) 

這段代碼的輸出是:

 Grade 
2  90 

不過,我只希望得到90這樣我可以在以後使用它(如果x> 85等。 ) 感謝您的幫助。

回答

1

訪問底層numpy的陣列,並採取它的第一個元素(假設你有一個單一的元素):

student_grades.loc[student_grades['Student_Name'] == "Stella", 'Grade'].iloc[0] 
Out: 90 
+0

這一工程:

student_grades.loc[student_grades['Student_Name'] == "Stella", 'Grade'].values[0] Out: 90 

您也可以在返回系列使用iatiloc !如果我有500多名學生的文件,它還能工作嗎?值[0]中的0是做什麼的? – memothetaker

+0

@memothetaker'student_grades ['Student_Name'] ==「Stella」'部分是布爾索引。我們不知道它會返回多少行,所以它返回一個Series。該系列可以是空的,它可能有單個元素或者它可能有幾個元素。當它有單個元素時,您需要通過其位置(0)來訪問該元素。你可以有500多名學生,只要學生姓名是獨一無二的,就可以保證工作。如果沒有學生有這個名字,它會返回一個關鍵錯誤。如果它們中的幾個具有相同的名稱,它將只返回第一個。 – ayhan

+0

謝謝,這幫了很大的忙! – memothetaker