2016-04-28 15 views
1

Excelからデータフレームにインポートして、マルチインデックス形式を維持しようとしています。Excelからマルチインデックスデータフレームへのインポート

このインポートは罰金です:アルファブラボーのセルが結合されている

|  |  Alpha  |  Bravo  | Charlie  | 
|Position| Area | Gain | Area | Gain | Area | Gain | 
| 1 | 0.5 | 1.1 | 0.5 | 1.1 | 1.7 | 1.6 | 
| 2 | 0.6 | 1.0 | 0.6 | 1.0 | 1.5 | 1.4 | 

def import_cp(cp_sheet_name): 
    xl = pd.ExcelFile('FileNameA.xlsx') 
    df_first = xl.parse(cp_sheet_name) 
    df_second = xl.parse(cp_sheet_name) 
    # there's many more 
    return df_first, df_second 

df_first = import_cp("Sheet 1") 

エクセルは、このようにフォーマットされます。私はインポートすると

は私が取得:

( |Unnamed: 0 Alpha| Unnamed: 2 Bravo| Unnamed: 4 Charlie| 
0 |Position Area| Gain Area | Gain Area  | 
1 | 1  0.5 | 1.17 0.5 | 1.13  0.5 | 
2 | 2  0.5 | 1.17 0.5 | 1.13  0.5 | 

は、私はしかし、大きな変化を持っていなかったことheader=0を使用してみました、私はこの上Alpha Alpha Bravo Bravo Charlie Charlie

任意の助けを望んでいないようfillnaは理想的ではないだろう感謝する。

答えて

1

私はあなたの名前sheet1sheetを読み取るためindexsheetname='sheet1'に最初の列を読み取るためMultiIndexindex_col=0に列を読み取るためread_excelにパラメータheader=[0,1]を追加が必要だと思います。そして、あなたは

import pandas as pd 

df = pd.read_excel('test.xlsx', header=[0,1], index_col=0, sheetname='sheet1') 
print df 
     Alpha  Bravo  Charlie  
Position Area Gain Area Gain Area Gain 
1   0.5 1.1 0.5 1.1  1.7 1.6 
2   0.6 1.0 0.6 1.0  1.5 1.4 

df = df.rename_axis((None,None), axis=1) 
print df 
    Alpha  Bravo  Charlie  
    Area Gain Area Gain Area Gain 
1 0.5 1.1 0.5 1.1  1.7 1.6 
2 0.6 1.0 0.6 1.0  1.5 1.4 

print df.index 
Int64Index([1, 2], dtype='int64') 

print df.columns 
MultiIndex(levels=[[u'Alpha', u'Bravo', u'Charlie'], 
        [u'Area', u'Gain']], 
      labels=[[0, 0, 1, 1, 2, 2], [0, 1, 0, 1, 0, 1]]) 
+0

こんにちはJezrael(pandas0.18.0に新)rename_axisで列名をリセットすることができ、答えてくれてありがとう!私はエラーが発生しています:TypeError:リストのインデックスはリストではなく整数でなければなりません。これはヘッダーの設定に問題がありますか? – OParker

+0

私は知りません、 'header = [0,1]'のパラメータ '0'と' 1'は、ファイルをExcelに読み込む際の最初と2番目の行を読み込むことを意味します。 Btw、パンダのあなたのバージョンは何ですか? 'print pd.show_versions()'? – jezrael

+0

私は現時点で0.16.2を実行しています...しかし、更新ボタンには更新が表示されていませんか?私は試して0.18をダウンロードする必要がありますか? – OParker

関連する問題