如何从布尔值的 Pandas DataFrame 创建频率分布矩阵
How to create a Frequency Distribution Matrix from a Pandas DataFrame of boolian values
简而言之,我正在尝试像这样翻译 DataFrame
Patient Cough Headache Dizzy
1 1 0 0
2 1 1 1
3 0 1 0
4 1 0 1
5 0 1 0
进入类似于Pandas相关特征的频率分布矩阵。
也就是说,它会return像这样
Cough Headache Dizzy
Cough 1 0.33 0.66
Headache 0.33 1 0.33
Dizzy 1 0.5 1
因为每 3 个头痛的人中就有 1 个是头晕的,但只有每 2 个头晕的人中有 1 个是头痛等
我想使用它的实际数据要大得多,所以我很好奇 Pandas 是否有办法自动执行此操作。
是这样的吗?
# extract columns of interest
s = df.iloc[:,1:]
# output
((s.T @ s)/s.sum()).T
输出:
Cough Headache Dizzy
Cough 1.000000 0.333333 0.666667
Headache 0.333333 1.000000 0.333333
Dizzy 1.000000 0.500000 1.000000
简而言之,我正在尝试像这样翻译 DataFrame
Patient Cough Headache Dizzy
1 1 0 0
2 1 1 1
3 0 1 0
4 1 0 1
5 0 1 0
进入类似于Pandas相关特征的频率分布矩阵。
也就是说,它会return像这样
Cough Headache Dizzy
Cough 1 0.33 0.66
Headache 0.33 1 0.33
Dizzy 1 0.5 1
因为每 3 个头痛的人中就有 1 个是头晕的,但只有每 2 个头晕的人中有 1 个是头痛等
我想使用它的实际数据要大得多,所以我很好奇 Pandas 是否有办法自动执行此操作。
是这样的吗?
# extract columns of interest
s = df.iloc[:,1:]
# output
((s.T @ s)/s.sum()).T
输出:
Cough Headache Dizzy
Cough 1.000000 0.333333 0.666667
Headache 0.333333 1.000000 0.333333
Dizzy 1.000000 0.500000 1.000000