我正在使用read_html()从html文件中读取dataFrame。初始加载后,我决定使用我的一行作为标题。
df = pd.read_html('http://www.....')[0] # Read from html file
df.columns = df.iloc[1] # Use 1th row as header
df = df[2:] # Removing first two rows including the header row
df.reset_index(drop=True) # reindexing
毕竟这个我的dataFrame看起来像这样
1 RK PLAYER TEAM GP G A PTS +/- PIM PTS/G SOG PCT GWG \
0 1 Jamie Benn, LW DAL 82 35 52 87 1 64 1.06 253 13.8 6
1 2 John Tavares, C NYI 82 38 48 86 5 46 1.05 278 13.7 8
2 3 Sidney Crosby, C PIT 77 28 56 84 5 47 1.09 237 11.8 3
3 4 Alex Ovechkin, LW WSH 81 53 28 81 10 58 1.00 395 13.4 11
4 NaN Jakub Voracek, RW PHI 82 22 59 81 1 78 0.99 221 10.0 3
因此,您可以看到它在行索引之上具有值 1 。当我使用 df.columns = df.iloc [1] 时,它获得了这个值,其中1是行索引号。
所需的数据框应该看起来像这样。
RK PLAYER TEAM GP G A PTS +/- PIM PTS/G SOG PCT GWG \
0 1 Jamie Benn, LW DAL 82 35 52 87 1 64 1.06 253 13.8 6
1 2 John Tavares, C NYI 82 38 48 86 5 46 1.05 278 13.7 8
2 3 Sidney Crosby, C PIT 77 28 56 84 5 47 1.09 237 11.8 3
3 4 Alex Ovechkin, LW WSH 81 53 28 81 10 58 1.00 395 13.4 11
4 NaN Jakub Voracek, RW PHI 82 22 59 81 1 78 0.99 221 10.0 3
任何人都可以建议我如何实现这一目标? 提前谢谢。
答案 0 :(得分:1)
将列分配给pd.Series时,您还将继承系列名称。如果Series来自DataFrame行,就像您的情况一样,Series名称与其原始索引相同(在您的情况下为1)。您可以在打印数据框结果之前添加行df.columns.name = None
来重置名称