Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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_Dataframe - Fatal编程技术网

Python 计数每列数据帧中出现的值数

Python 计数每列数据帧中出现的值数,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据帧: df = pd.DataFrame(np.array([[4, 1], [1,1], [5,1], [1,3], [7,8], [np.NaN,8]]), columns=['a', 'b']) a b 0 4 1 1 1 1 2 5 1 3 1 3 4 7 8 5 Nan 8 现在,我想对从1到9的值的列进行一次值_计数,这将给出以下结果: a b 1 2 3 2 0

我有以下数据帧:

df = pd.DataFrame(np.array([[4, 1], [1,1], [5,1], [1,3], [7,8], [np.NaN,8]]), columns=['a', 'b'])

    a    b
0   4    1
1   1    1
2   5    1
3   1    3
4   7    8
5   Nan  8
现在,我想对从1到9的值的列进行一次值_计数,这将给出以下结果:

    a    b
1   2    3
2   0    0
3   0    1
4   1    0
5   1    0
6   0    0
7   1    0
8   0    2
9   0    0
这意味着我只需计算每列值1到9的出现次数。如何做到这一点?我希望获得此格式,以便以后可以应用df.plotkind='bar',stacked=True,以获得x轴上离散值为1到9、y轴上a和b计数的堆叠条形图。

在每列上使用np.bincount:

df.apply(lambda x: np.bincount(x.dropna(),minlength=10))

   a  b
0  0  0
1  2  3
2  0  0
3  0  1
4  1  0
5  1  0
6  0  0
7  1  0
8  0  2
9  0  0
或者,使用列表理解而不是应用

在每列上使用np.bincount:

df.apply(lambda x: np.bincount(x.dropna(),minlength=10))

   a  b
0  0  0
1  2  3
2  0  0
3  0  1
4  1  0
5  1  0
6  0  0
7  1  0
8  0  2
9  0  0
或者,使用列表理解而不是应用

使用pd.U值计数:

使用pd.U值计数:

df.apply(pd.value_counts).reindex(range(10)).fillna(0)