我有以下資料結構:

每行代表一個注釋。如果用戶使用標簽 2 和 3 標記資料(參見第二行,即行索引 1),則資料集將為 1 1 0 0 0 0 0。
我想以此制作熱圖,以查看哪些標簽被密切注釋。我認為得到的 df 應該是 7x7。(我嘗試過使用 np.corrcoef,我嘗試過旋轉資料,可能只是我沒有問對問題。)
任何幫助表示贊賞,謝謝!
前5行資料:
df = [{'L3': 1},
{'L2': 1, 'L3': 1},
{'L7': 1},
{'L1': 1, 'L4': 1},
{'L1': 1, 'L2': 1}]
df = pd.DataFrame(df)
uj5u.com熱心網友回復:
用0corr替換后使用,nan否則您會得到一個填充有 的矩陣nan:
corr = df.fillna(0).corr()
print(corr)
plt.colormesh(corr)
plt.show()
# Output
L1 L2 L3 L4 L5 L6 L7
L1 1.000000 0.010929 -0.011707 -0.000469 -0.024428 -0.004918 0.033066
L2 0.010929 1.000000 -0.028859 -0.012876 -0.000667 0.009042 -0.017563
L3 -0.011707 -0.028859 1.000000 -0.033609 0.017446 0.036202 0.018763
L4 -0.000469 -0.012876 -0.033609 1.000000 -0.035363 -0.009639 0.038593
L5 -0.024428 -0.000667 0.017446 -0.035363 1.000000 0.007565 -0.045324
L6 -0.004918 0.009042 0.036202 -0.009639 0.007565 1.000000 -0.009466
L7 0.033066 -0.017563 0.018763 0.038593 -0.045324 -0.009466 1.000000

為了快速查看,你可以使用matplotlib但是如果你想產生漂亮的輸出,我建議你安裝和使用seaborn
設定MRE
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
N = 2000
np.random.seed(2022)
df = pd.DataFrame(np.random.choice([np.NaN, 1], (N, 7), p=[.7, .3]),
columns=[f'L{i}' for i in range(1, 8)])
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/412356.html
標籤:
下一篇:張量和矩陣的奇怪產生
