2016-10-24 12 views
3

Excelで複数の行にマージされたインデックスを持つExcelファイルがあります。これをpandasに読み込むと、最初の行がインデックスラベルとして読み込まれ、残りの部分がマージされます細胞)はNaNで満たされる。どのようにインデックスをループして、NaNに対応するインデックスを塗りつぶすことができますか?Pandas index NaNの塗りつぶし方法

EDIT:画像がExcelによって削除されました。私は特定のコードを持っていませんが、私は例を書くことができます。

import pandas as pd 
df = pd.read_excel('myexcelfile.xlsx', header=1) 
df.head() 
        Index-header    Month 
0       Index1     1 
1       NaN      2  
2       NaN      3  
3       NaN      4  
4       NaN      5 
5       Index2     1 
6       NaN      2 
... 
+1

ここに画像を入れないでください。 [再現可能なパンダの例の作成方法](http://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples)を読んで、クリップボードに適したコードをここに入力してください。また、これを読むために使用するコードを共有してください。 – Ivan

答えて

4

これを試してみてください:

In [205]: df 
Out[205]: 
    Index-header Month 
0   Index1 1.0 
1   NaN 2.0 
2   NaN 3.0 
3   NaN 4.0 
4   NaN 5.0 
5   Index2 1.0 
6   NaN 2.0 
...   NaN NaN 

In [206]: df['Index-header'] = df['Index-header'].fillna(method='pad') 

In [207]: df 
Out[207]: 
    Index-header Month 
0   Index1 1.0 
1   Index1 2.0 
2   Index1 3.0 
3   Index1 4.0 
4   Index1 5.0 
5   Index2 1.0 
6   Index2 2.0 
...  Index2 NaN 
2
from StringIO import StringIO 
import pandas as pd 

txt = """Index1,1 
,2 
,3 
Index2,1 
,2 
,3""" 

df = pd.read_csv(StringIO(txt), header=None, index_col=0, names=['Month']) 
df 

enter image description here

df.set_index(df.index.to_series().ffill(), inplace=True) 
df 

enter image description here