2015-10-21 106 views
1

我的代碼非常簡單的行:熊貓數據幀遍歷所有列

df[df.RESP == 0].CCOL 

其中I列出數據幀(DF)CCOL值如果在RESP列值等於零。但是,如果我添加一個數組(例如CNames = [CCOL1,CCOL2,CCOL3 ...])並嘗試遍歷數組以獲得每列值IF RESP == 0,則上面的代碼行無法實施。

我試着這樣說:

for c in CNames: 
    df[df.RESP == 0].c 

任何想法如何,我可以解決這個問題?

謝謝!

回答

1

您正在使用「屬性」 acccess在列,但你也可以在[ ](「的GetItem」)使用的名稱,如df['CCOL']拿到列,並以這種方式,你可以使用一個變量作爲列名。

在這種情況下:

for c in CNames: 
    df.loc[df.RESP == 0, c] 

loc使用像上面建議。您也可以執行df[df.RESP == 0][c],但如果您還希望爲該選擇分配值,則此鏈接索引並不總能保證正常工作。

+0

非常感謝。現在我明白問題出在哪裏了。 – 30114