假设我有一个pandas.DataFrame
叫df
. 的列df
代表不同的个体,索引轴代表时间,因此 (i,j) 条目是个体 j 对时间段 i 的观察,我们可以假设所有数据都是float
可能带有NaN
值的类型。
就我而言,我有大约 14,000 列和几百行。
pandas.corr
将返回 14,000 x 14,000 相关矩阵,它的时间性能对我的应用程序来说很好。
但我也想知道,对于每一对个体 (j_1, j_2),有多少非空观测值进入了相关性计算,因此我可以分离出数据覆盖率较差的相关性单元格。
我能想到的最好的方法如下:
not_null_locations = pandas.notnull(df).values.astype(int)
common_obs = pandas.DataFrame(not_null_locations.T.dot(not_null_locations),
columns=df.columns, index=df.columns)
内存占用和速度开始有点问题。
有没有更快的方法来获得常见的观察结果pandas
?