Bri*_*ian 5 python numpy dataframe pandas
我正在阅读这个问题的答案。然后出现了如何计算一个数据帧中所有列与另一数据帧中所有列的相关性的问题。因为这个问题似乎不会得到回答,所以我想问它,因为我需要类似的东西。
假设我有数据框A并且B:
import pandas as pd
import numpy as np
A = pd.DataFrame(np.random.rand(24, 5), columns=list('abcde'))
B = pd.DataFrame(np.random.rand(24, 5), columns=list('ABCDE'))
Run Code Online (Sandbox Code Playgroud)
如何获得如下所示的数据框:
pd.DataFrame([], A.columns, B.columns)
A B C D E
a NaN NaN NaN NaN NaN
b NaN NaN NaN NaN NaN
c NaN NaN NaN NaN NaN
d NaN NaN NaN NaN NaN
e NaN NaN NaN NaN NaN
Run Code Online (Sandbox Code Playgroud)
但充满了适当的相关性?
一种方法是:
pd.concat([A, B], axis=1).corr().filter(B.columns).filter(A.columns, axis=0)
Run Code Online (Sandbox Code Playgroud)
更有效的方法是:
Az = (A - A.mean())
Bz = (B - B.mean())
Az.T.dot(Bz).div(len(A)).div(Bz.std(ddof=0)).div(Az.std(ddof=0), axis=0)
Run Code Online (Sandbox Code Playgroud)
你会得到与上面相同的结果。
| 归档时间: |
|
| 查看次数: |
1758 次 |
| 最近记录: |