我有一个数据框,描述了工作场所是否具有工具。它具有简单的对/错来描述该工具是否存在。不幸的是,工具名称不是标准化的,但是我确实有它们的列表。
数据框看起来像这样:
+-------+---------+-------+-------+-------+-------+
| 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 |
+-------+--------+-------+-------+-------+-------+----------+
您可以使用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
开始计数)。另一种查看方法是跨列求和。