我的数据集是这样的
<表类>
id
是
number1
科学
number3
number4
number5
number6
sum_columns
tbody><<tr>1 105 1 南 南 2 3 4 4 2300 2 1 1 33 6 2 6 3 20 1 南 南 南 5 3 3 表类>
对于不太像6
的过滤器值使用DataFrame.where
,替换不匹配的0
:
df1 = df.filter(like='number')
df['values_sum'] = df1.where(df1.lt(6),0).sum(axis=1)
#if need values only range(1,6)
#df['values_sum'] = df1.where(df1.isin(range(1, 6)),0).sum(axis=1)
print (df)
id something number1 number2 number3 number4 number5 number6
0 1 105 1 NaN NaN 2.0 3 4
1 2 300 2 1.0 1.0 33.0 6 2
2 3 20 1 NaN NaN NaN 5 3
sum_columns values_sum
0 4 10.0
1 6 6.0
2 3 9.0