在python中,我如何对一列中每个值与另一列中的值发生的次数(多少行)建立矩阵?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python中,我如何对一列中每个值与另一列中的值发生的次数(多少行)建立矩阵?相关的知识,希望对你有一定的参考价值。
我有一个过滤后的数据框,它会根据用户过滤的方式改变它的行数。我需要计算每一列中一个值与另一列中的值匹配多少次。例如:假设我的DF是:sample data frame我需要一个3x3矩阵,该矩阵具有每次A列中的值与B列中的值出现的总和。该矩阵为:sample matrix我可以确定矩阵的维数,每列的唯一值是什么,以及它们出现了多少次,但是需要找到一种有效的方法来汇总这些值出现的频率。
答案
我能够这样实现您想要的输出:
从馆藏进口柜台以pd格式导入熊猫
df = pd.DataFrame('A':[500,500,300,400,400,300],'B':[10,10,20,10,20,30])
inp = df.groupby('A')['B'].agg(Counter).to_frame()
out = pd.DataFrame.from_records(inp['B'].tolist(), index=inp.index).fillna(0).T
输出:
A 300 400 500
20 1.0 1.0 0.0
30 1.0 0.0 0.0
10 0.0 1.0 2.0
groupyby / Counter计算A中每个值中B中出现多少次值。然后,第二步将字典的列解包为数据框
以上是关于在python中,我如何对一列中每个值与另一列中的值发生的次数(多少行)建立矩阵?的主要内容,如果未能解决你的问题,请参考以下文章