Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算某个条件所在字段中每行的列数_Python_Pandas - Fatal编程技术网

Python 计算某个条件所在字段中每行的列数

Python 计算某个条件所在字段中每行的列数,python,pandas,Python,Pandas,我有一个熊猫数据框,如下所示: data = pd.DataFrame({'w1':[0,1,0],'w2':[5,8,0],'w3':[0,0,0],'w4' :[5,1,0], 'w5' : [7,1,0],'condition' : [5,1,0]}) 我需要有一个列,对于每一行,计算其值等于“条件”的列数(除“条件”之外的列)。 最终输出应如下所示: 我不想写for循环 作为解决方案,我想用np替换等于“条件”的值,用1替换其他值,其中如下所示,然后对每行的1求和,这是没有帮助的:

我有一个熊猫数据框,如下所示:

data = pd.DataFrame({'w1':[0,1,0],'w2':[5,8,0],'w3':[0,0,0],'w4' :[5,1,0], 'w5' : [7,1,0],'condition' : [5,1,0]})

我需要有一个列,对于每一行,计算其值等于“条件”的列数(除“条件”之外的列)。 最终输出应如下所示:

我不想写for循环

作为解决方案,我想用
np替换等于“条件”的值,用1替换其他值,其中
如下所示,然后对每行的1求和,这是没有帮助的:

data = pd.DataFrame(np.where(data.loc[:,data.columns != 'condition'] == data['condition'], 1, 0), columns = data.columns)

这只是一个想法(我的意思是将值替换为1和0),但是任何pythonic解决方案都是值得的。

比较所有没有last by column
条件的列,并通过
sum
计算
True
s:

data['new'] = data.iloc[:, :-1].eq(data['condition'], axis=0).sum(axis=1)
另一个想法是将所有列与remove
condition
col进行比较:

data['new'] = data.drop('condition', axis=1).eq(data['condition'], axis=0).sum(axis=1)
感谢您在@Sayandip Dutta发表评论,您的想法是比较所有列并删除
1

data['new'] = data.eq(data['condition'], axis=0).sum(axis=1).sub(1)


比较所有不带last by column
条件的列
和count
True
s by
sum

data['new'] = data.iloc[:, :-1].eq(data['condition'], axis=0).sum(axis=1)
另一个想法是将所有列与remove
condition
col进行比较:

data['new'] = data.drop('condition', axis=1).eq(data['condition'], axis=0).sum(axis=1)
感谢您在@Sayandip Dutta发表评论,您的想法是比较所有列并删除
1

data['new'] = data.eq(data['condition'], axis=0).sum(axis=1).sub(1)


为什么用0/1代替实际的布尔值?为什么用0/1代替实际的布尔值?