2016-04-30 2 views
2

私は、インターネットからpandas.read_htmlを使用していくつかのテーブルを解析しています。情報はこのようなページから来ますhttp://www.sports-reference.com/cfb/players/william-fuller-2/gamelog/。これは私がスペースを節約するために省略している次のようなデータフレーム、と私を提供しています。空の列の数に基づいてパンダの列をシフトする

Passing Rushing tackles  Rk  Year 
1   2   Nan   Nan  Nan 
2   3   Nan   Nan  Nan 
3   3   Nan   Nan  Nan 
4   5   Nan   Nan  Nan 

これが発生する理由は、各テーブルのメジャーとマイナーのヘッダーがあるということですとread_htmlので、両方として列名を取りますグループ化されたヘッダーと同じ数の余分な列があります。私は私のDFが

Rk  Year 
1   2 
2   3   
3   3    
4   5   

になるように、各テーブルの完全NaNの列数が変化明確にするために、完全ナン列の数だけ左にすべての列名をシフトしたいので、私はちょうどでハードコーディングすることはできませんある長さのシフト。

私はこれを行うことができる簡単な方法はありますか?

over_header 'tr'タグをスキップしてテーブルを読み込む方法が見つかった場合でもうまくいく可能性があります。

ありがとうございます!

答えて

2

これにはさまざまな方法がありますが、以下のように列カウントの堅牢性を達成しました。

import pandas as pd 

df = pd.read_csv('your_data.csv') 

to_shift = len(df.dropna(how='all', axis=1).columns) 

df2 = df.dropna(how='all', axis=1) 
df2.columns = df.columns[-to_shift:] 

print df2 

    Rk Year 
0 1  2 
1 2  3 
2 3  3 
3 4  5 
+0

ありがとう!私はいくつかの方法でドロップnaを含めると考えていたが、その後の列インデックス作成に苦労していた! –

関連する問題