python-3.x - 逐列特定值计数

标签 python-3.x pandas matrix arraylist

aMat=df1000.iloc[:,1:].values
print(aMat)

通过使用上面的代码,我从数据集中得到了下面提到的数据矩阵:

[[1 2 5 2 4]
 [1 2 1 2 2]
 [1 2 4 2 4]
 [1 5 1 1 4]
 [1 4 4 2 5]]

数据集只能容纳 1,2,3,4 和 5 个值。所以我想计算第一列中出现的 1 个数,第一列中出现的 2 个数,第一列中出现的 3 个数,第一列中出现的 4 个数,第一列中出现的 5 个数,第一个列中出现的 1 个数第二列,......等等。意味着最后列表将如下所示:

[[5,0,0,0,0],[0,3,0,1,1],[2,0,0,2,5],[1,4,0,0,0],[0,1,0,3,1]]

请帮忙

最佳答案

让我们试试:

df = pd.DataFrame([[1, 2, 5, 2, 4],
 [1, 2, 1, 2, 2],
 [1, 2, 4, 2, 4],
 [1, 5, 1, 1, 4],
 [1, 4, 4, 2, 5]])

df.apply(pd.Series.value_counts).reindex([1,2,3,4,5]).fillna(0).to_numpy('int')

输出:

array([[5, 0, 2, 1, 0],
       [0, 3, 0, 4, 1],
       [0, 0, 0, 0, 0],
       [0, 1, 2, 0, 3],
       [0, 1, 1, 0, 1]])

或者,转置:

df.apply(pd.Series.value_counts).reindex([1,2,3,4,5]).fillna(0).T.to_numpy('int')

输出:

array([[5, 0, 0, 0, 0],
       [0, 3, 0, 1, 1],
       [2, 0, 0, 2, 1],
       [1, 4, 0, 0, 0],
       [0, 1, 0, 3, 1]])

关于python-3.x - 逐列特定值计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56428374/

相关文章:

python - 如何在Python中分割文本文件并修改它?

Python 3.x : parse ATOM XML and convert to dict

python - Pandas loc 查找已应用过 5 个或更多事物的用户

matlab - 如何在 MATLAB 中将张量的维度折叠为标量

python - 如何使用 Google Cloud 调度程序 Python api 创建作业

python - 如何在 Django 中设置和获取 session 变量?

Kinect 游戏的图像转换

python - 如何按索引顺序展平列表矩阵(列表列表)?

python - 在 Pandas 数据框中的每第 N 行之后插入空行

python - 结合 pandas 和 shutil 时与解码相关的错误