2016-01-22 76 views
4

我有一個數據幀,看起來像熊貓:壓縮列名稱單元格值,其中真

ID  Cat1 Cat2 Cat3 Cat4 
3432432 True False True False 
1242323 False True False False 
3423883 False False False True 

我如何可以轉換到選擇的第一列,它是真正的一個數據幀?

ID  Status  
3432432 Cat1 
1242323 Cat2 
3423883 Cat4 

回答

8

你可以採取的事實,即idxmax將返回第一個真:

>>> df.set_index("ID").idxmax(axis=1).reset_index(name="Status") 
     ID Status 
0 3432432 Cat1 
1 1242323 Cat2 
2 3423883 Cat4 

它的作品,因爲我們有

>>> df.iloc[:,1:] 
    Cat1 Cat2 Cat3 Cat4 
0 True False True False 
1 False True False False 
2 False False False True 
>>> df.iloc[:,1:].idxmax(axis=1) 
0 Cat1 
1 Cat2 
2 Cat4 
dtype: object