我需要在此输出中删除该行中的 unnamed: level_0 标题和其他列标题

屏幕刮擦

    `url = 'https://www.pro-football- 

    reference.com/teams/buf/2020/gamelog/'

    BuffaloBillsO = pd.read_html(url)[0]`

重命名未命名的 1 级

BuffaloBillsO.rename(columns={'Unnamed: 4_level_1': 'W/L'}, inplace=True)


BuffaloBillsO.rename(columns={'Unnamed: 3_level_1': 'Box_link'}, inplace=True)


BuffaloBillsO.rename(columns={'Unnamed: 6_level_1': '@'}, inplace=True)


BuffaloBillsO.rename(columns={'Unnamed: 3_level_1': 'Box_link'}, inplace=True)

强文本


我尝试了以下解决方案的变体,但它替换了前两行并将第一行数据转换为列标题:


BuffaloBillsO.columns = BuffaloBillsO.iloc[0]  

BuffaloBillsO=BuffaloBillsO[1:]

BuffaloBillsO.rename_axis(columns=None).reset_index(drop=True) 


慕森王
浏览 123回答 2
2回答

函数式编程

所以我尝试了这个并且效果很好ncols=[]for i in range(len(BuffaloBillsO.columns)):    ncols.append(BuffaloBillsO.columns[i][1])ncols=dict(zip(BuffaloBillsO.columns,ncols))BuffaloBillsO.columns =BuffaloBillsO.columns.to_series().map(ncols)以下是 BuffaloBillsO.columns 的输出Index(['Week', 'Day', 'Date', 'Unnamed: 3_level_1', 'Unnamed: 4_level_1', 'OT',       'Unnamed: 6_level_1', 'Opp', 'Tm', 'Opp', 'Cmp', 'Att', 'Yds', 'TD',       'Int', 'Sk', 'Yds.1', 'Y/A', 'NY/A', 'Cmp%', 'Rate', 'Att', 'Yds',       'Y/A', 'TD', 'FGM', 'FGA', 'XPM', 'XPA', 'Pnt', 'Yds', '3DConv',       '3DAtt', '4DConv', '4DAtt', 'ToP'],      dtype='object')

眼眸繁星

您可以通过以下方式传入标题级别.read_html():import pandas as pdurl = 'https://www.pro-football-reference.com/teams/buf/2020/gamelog/'BuffaloBillsO = pd.read_html(url,header=1)[0]输出:print(BuffaloBillsO.columns)Index(['Week', 'Day', 'Date', 'Unnamed: 3', 'Unnamed: 4', 'OT', 'Unnamed: 6',       'Opp', 'Tm', 'Opp.1', 'Cmp', 'Att', 'Yds', 'TD', 'Int', 'Sk', 'Yds.1',       'Y/A', 'NY/A', 'Cmp%', 'Rate', 'Att.1', 'Yds.2', 'Y/A.1', 'TD.1', 'FGM',       'FGA', 'XPM', 'XPA', 'Pnt', 'Yds.3', '3DConv', '3DAtt', '4DConv',       '4DAtt', 'ToP'],      dtype='object')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python