pandas.DataFrame
がdf
とします。 df
の列は異なる個体を表し、インデックス軸は時間を表すので、(i、j)項目は期間iの個体jの所見であり、すべてfloat
型の可能性があり、値はNaN
であると仮定できます。Python Pandasの相関行列エントリの一般的な観測回数を見るための速い方法
私の場合、私は約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
の一般的な観察結果を得るための方法はありますか?
、直接答えていませんが、あなたは「十分に良い」を与えることが – Jeff
に答えますそれはすばらしい提案ですが、私はPandasバージョン0.8.0を必要とするプロダクションシステムで作業しています。新しいバージョンでは 'min_periods'が追加されたようです。古いバージョンについては何もできません。恐らく。 – ely
あなたは* linux上であればコード内に*追加することができます(かなり簡単です).....その唯一のいくつかの行の変更(もちろん 'production'はおそらくこれを排除します) – Jeff