Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.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 Pandas:跨多个列获取行中指定值的频率_Python_Pandas - Fatal编程技术网

Python Pandas:跨多个列获取行中指定值的频率

Python Pandas:跨多个列获取行中指定值的频率,python,pandas,Python,Pandas,我有一个包含许多列数字数据的大型数据集,希望能够计算每行中的所有零。下面将生成一个小样本数据 df = pd.DataFrame(np.random.randint(0, 3, size=(8,3)),columns=list('abc')) df 而我可以创建一列,用以下代码对行中的所有值求和: df2=df.sum(axis=1) df2 我可以得到一列中零的计数: df.loc[df.a==1].count() 我还并没有弄清楚如何在每一行

我有一个包含许多列数字数据的大型数据集,希望能够计算每行中的所有零。下面将生成一个小样本数据

    df = pd.DataFrame(np.random.randint(0, 3, size=(8,3)),columns=list('abc'))
    df

而我可以创建一列,用以下代码对行中的所有值求和:

    df2=df.sum(axis=1)
    df2
我可以得到一列中零的计数:

    df.loc[df.a==1].count() 

我还并没有弄清楚如何在每一行中得到零的计数。如蒙协助,将不胜感激

对于计数匹配值,可以使用布尔掩码的
True
s的
sum

如果需要新列:

df['sum of 1'] = df.eq(1).sum(axis=1)
#alternative
#df['sum of 1'] = (df == 1).sum(axis=1)
样本

np.random.seed(2020)
df = pd.DataFrame(np.random.randint(0, 3, size=(8,3)),columns=list('abc'))

df['sum of 1'] = df.eq(1).sum(axis=1)
print (df)
   a  b  c  sum of 1
0  0  0  2         0
1  1  0  1         2
2  0  0  0         0
3  2  1  2         1
4  2  2  1         1
5  0  0  0         0
6  0  2  0         0
7  1  1  1         3
np.random.seed(2020)
df = pd.DataFrame(np.random.randint(0, 3, size=(8,3)),columns=list('abc'))

df.loc['sum of 1'] = df.eq(1).sum()
print (df)
          a  b  c
0         0  0  2
1         1  0  1
2         0  0  0
3         2  1  2
4         2  2  1
5         0  0  0
6         0  2  0
7         1  1  1
sum of 1  2  2  3
如果需要新行:

df.loc['sum of 1'] = df.eq(1).sum()
#alternative
#df.loc['sum of 1'] = (df == 1).sum()
样本

np.random.seed(2020)
df = pd.DataFrame(np.random.randint(0, 3, size=(8,3)),columns=list('abc'))

df['sum of 1'] = df.eq(1).sum(axis=1)
print (df)
   a  b  c  sum of 1
0  0  0  2         0
1  1  0  1         2
2  0  0  0         0
3  2  1  2         1
4  2  2  1         1
5  0  0  0         0
6  0  2  0         0
7  1  1  1         3
np.random.seed(2020)
df = pd.DataFrame(np.random.randint(0, 3, size=(8,3)),columns=list('abc'))

df.loc['sum of 1'] = df.eq(1).sum()
print (df)
          a  b  c
0         0  0  2
1         1  0  1
2         0  0  0
3         2  1  2
4         2  2  1
5         0  0  0
6         0  2  0
7         1  1  1
sum of 1  2  2  3