私はパンダのデータフレームにインポートCSVファイルを持っています。おそらく、1対多の親テーブルと詳細テーブルを組み合わせたデータベースのエクスポートが原因でした。解析CSV(一対多unmunge)
header1, header2, header3, header4, header5, header6
sample1, property1,,,average1,average2
,,detail1,detail2,,
,,detail1,detail2,,
,,detail1,detail2,,
sample2, ...
,,detail1,detail2,,
,,detail1,detail2,,
...
(すなわちline 0
がheader
あるn
スルーlines 2
詳細、ラインであるN + 1 ...ようにレコード2であり、line 1
はrecord 1
ある)
(再正規化?)sample#
レコードに値を使用して参照することができ、別DataFrames
に詳細救出するための最良の方法は何ですか?詳細の各サブセットの数は、サンプルごとに異なります。
私が使用することができます。
samplelist = df.header2[pd.notnull(df.header2)]
を私はsamplelist.indexをつかむことができるように、各サンプルの開始インデックスを取得するには、[0] [1]をsamplelist.indexと小さなデータフレームでそれを置くために。それはcsvファイルの順番から推測する必要があるので、それ自体で詳細レコードは、サンプル彼らがどこから来たへの参照を持っていない(私の例では/満たされた空のフィールドのない交差点が存在しないことに注意してください)。
私はデータフレームのリスト、データフレームの辞書、またはデータフレームのパネルを作るべきか?
sample1レコードフィールドから何らかの変数を作成し、何らかの方法で詳細レコードのみを持つ各データフレームに追加することはできますか(複数のスカラーメンバーとそれぞれ1つのデータフレームを持つオブジェクトのコレクションなど)。
結局私は(例えばsampletype、日または日付など対mystatistic)各詳細レコードのグループ化からデータの統計を作成し、サンプルレコードの値に対してそれらをプロットします。私はカーネル密度推定PDFやヒストグラムのようなサンプルグループにも添付される中間シリーズを作成します。
ありがとうございました。
あなたの例では、私は簡単に私のデータを取得することができます。フォワードフィルはとても役に立ちました。私はあなたのサンプルがうまく動作していますが、 'for'ループの各パスは' sample'と 'data'を新しいオブジェクトに保存しなければなりません。私は2つの新しいデータフレームを望んでいました。これは、私がSQLテーブルについて考えるのに慣れているからです。私は 'groupby'オブジェクトを効率的に使う方法を頭に入れています。 –