在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中,我如何对一列中每个值与另一列中的值发生的次数(多少行)建立矩阵?的主要内容,如果未能解决你的问题,请参考以下文章

仅返回一列中的日期与另一列中的日期最接近的行?

如何在 Hive SQL 中对一列中的数据进行分组并将其分布在另一列中?

将一列中的文本与另一列匹配(vlookup + like)

返回与另一列中的最小值匹配的 ID 行 [重复]

返回值的公式,其中一列中的第一个单词与另一列的最后四位匹配

有没有办法将数据帧的一列中的所有行与另一个数据帧的另一列(火花)中的所有行进行比较?