如何动态计算每列中pandas中的标记总数?

时间:2017-03-28 19:44:06

标签: pandas

如何计算每列动态的pandas中的标记总数?我在pandas数据框中有大约500列,每列有0和1作为值。

我想做这样的事情。

数据帧

some_table
+----+-------------+------+
| id | some_column | type |
+----+-------------+------+
|  1 |       value |    1 |
|  2 |       value |    2 |
|  3 |       value |    1 |
| .. |         ... |  ... |
| .. |         ... |  ... |
+----+-------------+------+

结果数据框

id|flag1|flag2|flag3|.....|flag500
1 |  0  |   1 |   0 |.....|   1
2 |  0  |   0 |   1 |.....|   0
3 |  0  |   0 |   0 |.....|   1
4 |  0  |   1 |   0 |.....|   1
5 |  0  |   0 |   0 |.....|   0

1 个答案:

答案 0 :(得分:3)

来源DF

In [61]: df
Out[61]:
   id  flag1  flag2  flag3  flag500
0   1      0      1      0        1
1   2      0      0      1        0
2   3      0      0      0        1
3   4      0      1      0        1
4   5      0      0      0        0

计数

In [64]: df.filter(like='flag').sum()
Out[64]:
flag1      0
flag2      2
flag3      1
flag500    3
dtype: int64
  

有没有办法将结果作为数据框?

In [66]: df.filter(like='flag').sum().rename_axis('Flags').reset_index(name='counts')
Out[66]:
     Flags  counts
0    flag1       0
1    flag2       2
2    flag3       1
3  flag500       3