Python 2.7 基于空列数对列进行移位

Python 2.7 基于空列数对列进行移位,python-2.7,pandas,Python 2.7,Pandas,我正在使用pandas.read_html解析互联网上的几个表。信息来自这样的页面。这为我提供了如下数据帧,我将其缩写为节省空间: Passing Rushing tackles Rk Year 1 2 Nan Nan Nan 2 3 Nan Nan Nan 3 3 Nan Nan

我正在使用pandas.read_html解析互联网上的几个表。信息来自这样的页面。这为我提供了如下数据帧,我将其缩写为节省空间:

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将两者都作为列名,因此有与分组标题相同数量的额外列。我想将所有的列名按共Nan列的数量移位,这样我的df就变成

Rk       Year
1          2  
2          3          
3          3              
4          5        
要清楚的是,每个表的列数都会发生变化,所以我不能在一定长度的移位中硬编码

有没有一个简单的方法,我可以做到这一点

如果我在跳过over_header'tr'标记的同时在表中找到一种读取方式,那么它也可能会起作用


谢谢

实现这一点的方法可能很多,但我实现了如下列计数健壮性

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

太好了,谢谢!我想它会以某种方式包含dropna,但此后,我一直在努力进行列索引!