pandas-计算其他一系列列中的true数的列

问题描述 投票:0回答:1

我有一个数据框,描述了工作场所是否具有工具。它具有简单的对/错来描述该工具是否存在。不幸的是,工具名称不是标准化的,但是我确实有它们的列表。

数据框看起来像这样:

+-------+---------+-------+-------+-------+-------+
| Index |  County | State | JDKFK | YSAFQ | MDFKN |
+-------+----_----+-------+-------+-------+-------+
|     0 | '001'   | '05'  | TRUE  | TRUE  | TRUE  |
|     1 | '030'   | '05'  | FALSE | TRUE  | FALSE |
|     2 | '005'   | '05'  | TRUE  | TRUE  | FALSE |
+-------+---------+-------+-------+-------+-------+

使用我的列表,如何在指定的列中产生一个新的具有TRUE总和的列?

cols = ['JDKFK ', 'YSAFQ ', 'MDFKN ']

+-------+--------+-------+-------+-------+-------+----------+
| Index | County | State | JDKFK | YSAFQ | MDFKN | Tool_Sum |
+-------+--------+-------+-------+-------+-------+----------+
|     0 | '01'   | '05'  | TRUE  | TRUE  | TRUE  |        3 |
|     1 | '01'   | '05'  | FALSE | TRUE  | FALSE |        1 |
|     2 | '01'   | '05'  | TRUE  | TRUE  | FALSE |        2 |
+-------+--------+-------+-------+-------+-------+----------+
python pandas count boolean field
1个回答
2
投票

您可以使用sum

df['tool_sum'] = df[['JDKFK', 'YSAFQ', 'MDFKN']].sum(1)
print(df)

输出

   Index County State  JDKFK  YSAFQ  MDFKN  tool_sum
0      0   '01'  '05'   True   True   True         3
1      1   '01'  '05'  False   True  False         1
2      2   '01'  '05'   True   True  False         2

sum(1)表示将在第二个轴上求和(即1,因为它从0开始计数)。另一种查看方法是跨列求和。

© www.soinside.com 2019 - 2024. All rights reserved.