我使用beauthoulsoup和pandas的组合,尝试通过循环boxscore页面获取体育参考数据,获取每个团队的数据帧并将它们连接在一起。我注意到在每一页上表格的格式,有行分隔符将起始符和保留区分开,并且这个行分隔符在'Starter'列中有值“reserves”(我后来将其重命名为'Player_Name'),其余的列标题重复其馀的值。当此数据输入到dataframe中时,行分隔符作为普通行引入。我想添加一个单独的列,该列包含该玩家是否开始游戏的Y/N值,并删除“Starters”列等于“Reserves”的所有记录。在
我尝试过添加一个列,但是我正在努力寻找一个方法,使前x行的默认值为“Y”,其余行的默认值为“N”。在
下面是表格的一个简单示例,后面是我正在使用的代码。如果你有什么想法请告诉我!在
编辑:我可能过于简化了这一点,因为实际上有两个标题列,这似乎是在尝试所提出的解决方案时出现的问题。如何删除第一个标题列,该列只说明“基本框分数统计”和“高级框分数统计”?在
Basic Box Score Stats Advanced Box Score Stats
Starters MP FG +/- xyz%
Player1 20:00 17 5 12
Player2 15:00 8 4 10
Player3 10:00 9 3 8
Player4 9:00 3 2 6
Player5 8:00 1 1 4
Reserves MP FG +/- xyz%
Player4 7:00 1 1 2
Player5 4:00 1 1 2
Player6 3:30 1 1 2
^{pr2}$
你可以这样做,如果你已经知道你的“Reserve”值出现的索引,假设它出现在第10条记录中。我最初将所有内容设置为“N”,然后将前10行设置为“Y”。在
或者您可以: ^{pr2}$
这将显示第一次出现索引“Reserve”的位置。在
现在可以按上述方式执行:
将前几行设置为“Y”,直到单词“Reserve”第一次出现,然后将其余行设置为“N”。在
您可以通过三个步骤完成此操作:
away_team_stats['Starter']='N'
为整个列设置默认值“N”iloc
方法和away_team_stats.iloc[:x, 2]='Y'
将前x行的值设置为“Y” (我相信如果将“Starter”列附加到示例数据后,它将位于第2位,但您可能需要编辑它)'Player_Name' == 'Reserves'
的loc
方法删除带有'Player_Name' == 'Reserves'
的行iloc
方法将按数字索引/列对数据帧进行切片,loc
方法将按索引/列标签对数据帧进行切片https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html
相关问题 更多 >
编程相关推荐