Python 2.7 基于空列数对列进行移位
我正在使用pandas.read_html解析互联网上的几个表。信息来自这样的页面。这为我提供了如下数据帧,我将其缩写为节省空间: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
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,但此后,我一直在努力进行列索引!