2017-05-23 10 views
1

私は、特定のテクニカルマーカーがそれぞれの株の長期的なパフォーマンスにどのような影響を与えたかを調べるために、約6百万行の日次データを持つDataFrameを持っています。私には2つのアプローチがありますが、どれが推奨されていますか?Python pandas複数のデータフレームベストプラクティス

  1. 生データの1つと技術的マーカーを含む1つの(フィルタリングされたコピー)2つの異なるテーブルを作成し、その後のパフォーマンスを得るためにマスターテーブルで「ルックアップ」を行います。
  2. マーカーとパフォーマンスデータの両方を含む大きなテーブルを1つ使用します。

すべての行のテクニカルマーカーを計算したり、不要なものを含めてテクニカルマーカーを計算したり、マスターテーブルに対してルックアップを実行するなど、計算コストがかかります。ありがとう。

答えて

1

私は、最も簡単で効率的なパスは2つのテーブルを持つことだと思います。なぜなら、1つの大きなテーブルでは、マーカの各要素に対してn回の繰り返しを実行してから、各要素のn回の実行ごとに一致する必要があるため、アルゴリズムではO(n^2)を取ることができるからです。

2テーブルアプローチの場合、複雑さはO(n * m)になります.nは技術的マーカーの数、mはパフォーマンスのレコード数です。このユースケースでは、あなたのnが、あなたが見たいと思っているセットに基づいていて、セット全体ではなく、あなたのnが<mであることを意味するので、アルゴリズムをより効率的にする簡単な回路を適用することができます。

また、パフォーマンスマーカとテクニカルマーカの間のすべての関係をキャプチャするマスタールックアップテーブルを構築できた場合、複雑さは基本的にハッシュルックアップまたはO(1)です。