计算多列熊猫中特定值的数量

我有一个数据框:

A    B    C    D     E

12  4.5  6.1   BUY  NaN
12  BUY  BUY   5.6  NaN
BUY  4.5  6.1  BUY  NaN
12  4.5  6.1   0    NaN 

我想计算每一行中“BUY”出现的次数。预期结果:

A    B    C    D     E   score

12  4.5  6.1   BUY  NaN    1
12  BUY  BUY   5.6  NaN    2
15  4.5  6.1  BUY   NaN    1
12  4.5  6.1   0    NaN    0

我尝试了以下操作,但它只是为所有行提供了 0:

df['score'] = df[df == 'BUY'].sum(axis=1)

请注意,BUY 只能出现在 B、C、D、E 列中。

我试图在网上找到解决方案,但令人震惊的是没有找到。

很少有帮助将不胜感激。谢谢!

回答

您可以比较然后求和:

df['score'] = (df[['B','C','D','E']] == 'BUY').sum(axis=1)

这总结了所有的布尔值,你会得到正确的结果。


当你这样做df[df == 'BUY'],你只是更换任何东西这是不BUYnp.nan,然后接管轴= 1个多年平均值的工作总和,因为你已经离开了你的结果都是np.nan'BUY'字符串。因此你得到全0。


以上是计算多列熊猫中特定值的数量的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>