2016-11-01 7 views
2

私は以下のようなデータフレームを3列12行用意しています。 12行は4回の繰り返しクラス(3回分)です。私は1A、1D、2B、2Dセルの値が決してないこと、そして私は常に1B、1C、2A、および2Cセルのセル値を持っていることを知っています。pandas:マージ、結合、連結の最初のステップ

enter image description here

私は内側常にデータを持っていることを知っているすべてのセルを抽出するために、行と列の名前を組み合わせウィッヒで、あなたは以下を参照してください1のようなもので、それを変換したいと思います。 このようにして、不要な繰り返しや不要な空のセルは避けます。

enter image description here

私は手動http://pandas.pydata.org/pandas-docs/stable/merging.htmlを読んですることを試みたが、私は正しい道を取るために、いくつかの困難を持っています。私のためのいくつかのアドバイス?

あなたが使用することができ非常に

答えて

2

ありがとう:

#get index to MultiIndex in column 
df = df.set_index(['class','date']).unstack(level=0) 
#remove columns with all NaN, sort index 
df = df.dropna(axis=1, how='all').sort_index(ascending=False) 
#reset MultiIndex in columns, cast int to str in first level (1,2 values) 
df.columns = [''.join((str(col[0]),col[1])) for col in df.columns] 
#index to column 
df.reset_index(inplace=True) 
#reorder columns 
df = df[df.columns[1:].union(df.columns[:1])] 
print (df) 
     1B  1C  2A   2C  date 
0 1.462543 4.920529 4.496126 3.362060e+08 2016-10-31 
1 3.931170 3.439862 2.453640 1.488948e+00 2016-10-30 
2 3.550311 3.504713 3.224958 1.804881e+00 2016-10-29 
+0

まず第一に、あなたはとても親切で、どうもありがとうございました。 私はこのエラーがあります: '' ' TypeError例外トレースバック(最後の最新の呼び出し) 中) 8#プリントCOLを ---> 10 df.columnsシーケンス項目1::= [ '' df.columnsでCOLため.join(COL)] 11 '' は列 はTypeErrorに 12 #INDEX」を予想文字列、int型は、あなたが 'int型にキャスト必要 ' '' – aborruso

+0

を見つけました'df.columns = '' .join(str(col [0])、col [1]))for col in df.columns]' – jezrael

+0

もう一度ありがとうございます。作業。私は3行×25列ではなく、3行×5列を持っています。私はこの要点にすべてを挿入しましたhttps://gist.github.com/aborruso/8eb51579335cd94d44c033bea2b27748 – aborruso

関連する問題