根据空列数转换熊猫列
问题描述:
我使用pandas.read_html从互联网解析了几个表。信息来自这样的页面http://www.sports-reference.com/cfb/players/william-fuller-2/gamelog/。这为我提供了类似下面dataframes,我已经缩写为节省空间:根据空列数转换熊猫列
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'标签的同时找到表格中的阅读方式,它也可能工作。
谢谢!
答
可能有很多方法来解决这个问题,但是我实现了如下所示的列计数稳健性。
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,但之后在列索引上挣扎! –