我试图找到一种方法来查找数据帧的行数。
这是我的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
答案 0 :(得分:4)
您可以使用通过与boolean mask
进行比较而创建的0
sum
。输出按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