2016-11-28 68 views
2

即時通訊嘗試找到一種方法來查找數據幀的行數。使用熊貓數據幀的列數或列數

這裏是我的DF

index col1 col2 col3 col4 col5 col6 col7 col8 
    0  1  0 2 3  1 0 0 0 
    1  0  0 0 1  2 0 2 0 
    2  3  0 0 0  1 0 0 1 
    3  1  0 0 0  1 1 1 0 
    4  1  0 2 3  1 0 0 0 
    5  3  0 0 0  1 0 0 1 

在這裏,我想添加另一行我列的數量,如下面

index col1 col2 col3 col4 col5 col6 col7 col8 
    0  1  0 2 3  1 0 0 0 
    1  0  0 0 1  2 0 2 0 
    2  3  0 0 0  1 0 0 1 
    3  1  0 0 0  1 1 1 0 
    4  1  0 2 3  1 0 0 0 
    5  3  0 0 0  1 0 0 1 
----------------------------------------------- 
Total 5  0 2 3  6 1 2 2 

回答

4

您可以使用boolean masksum0比較創建。輸出由loc分配到最後一排的DataFrame

print (df != 0) 
     col1 col2 col3 col4 col5 col6 col7 col8 
index              
0  True False True True True False False False 
1  False False False True True False True False 
2  True False False False True False False True 
3  True False False False True True True False 
4  True False True True True False False False 
5  True False False False True False False True 

df.loc['total'] = (df != 0).sum() 
print (df) 
     col1 col2 col3 col4 col5 col6 col7 col8 
index             
0   1  0  2  3  1  0  0  0 
1   0  0  0  1  2  0  2  0 
2   3  0  0  0  1  0  0  1 
3   1  0  0  0  1  1  1  0 
4   1  0  2  3  1  0  0  0 
5   3  0  0  0  1  0  0  1 
total  5  0  2  3  6  1  2  2 

類似的解決方案與DataFrame.ne

df.loc['total'] = df.ne(0).sum() 
print (df) 
     col1 col2 col3 col4 col5 col6 col7 col8 
index             
0   1  0  2  3  1  0  0  0 
1   0  0  0  1  2  0  2  0 
2   3  0  0  0  1  0  0  1 
3   1  0  0  0  1  1  1  0 
4   1  0  2  3  1  0  0  0 
5   3  0  0  0  1  0  0  1 
total  5  0  2  3  6  1  2  2