gpt4 book ai didi

具有多列的 Python Pandas 成对频率表

转载 作者:行者123 更新时间:2023-11-28 21:38:06 24 4
gpt4 key购买 nike

初学者 Pandas 问题在这里:

我如何为所有列创建一个交叉频率计数表?我想使用输出来制作一个 seaborn 热图图,显示每对列之间的计数。

我有一个数据框(使用 pyspark 从 hdfs 中提取),其中包含约 70 个唯一列和大约 60 万行

示例所需输出:

    C1 C2 C3 C4 ...C70
C1 - 1 1 2
C2 1 - 0 2
C3 1 0 - 1
C4 2 2 1 -
...
C70

示例 DF:

import numpy as np
import pandas as pd
raw_data = {'C1': [ 0, 2, 5, 0, 3], #...600K
'C2': [3, 0 , 2, 0, 0],
'C3': [0, 0, 0, 3, 3],
'C4': [2, 1, 1, 4, 0]}
df = pd.DataFrame(raw_data, columns = ['C1', 'C2', 'C3','C4'])
print(df)

我已经尝试使用 pandas 中的交叉表、数据透视表、数据透视表,并认为解决方案是使用交叉表,但我无法以所需的输出格式获得它(抱歉,如果我遗漏了一些明显的东西)。任何帮助表示赞赏!

最佳答案

clip_upper将正值截取​​到1,然后计算点积:

i = df.clip_upper(1)
j = i.T.dot(i)

j

C1 C2 C3 C4
C1 3 1 1 2
C2 1 2 0 2
C3 1 0 2 1
C4 2 2 1 4

关于具有多列的 Python Pandas 成对频率表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48673428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com