如何从数据框中删除NBA球员的位置并创建一个新的"位置"列?



我仍在学习Python,如果可能的话,我希望得到一些帮助。到目前为止,我已经收集了NBA球员的名字,但球员的位置附在数据上。

我有两个目标,我想在你的帮助下完成:

  1. 从名称数据中删除玩家位置

  2. 为玩家位置创建一个名为"位置"的新列

这是我迄今为止的代码:

import pandas as pd
url = 'https://www.espn.com/nba/team/stats/_/name/lal/season/2020/seasontype/2'
df = pd.read_html(url)
playerNames = df[0]
#edit to eliminate the '*' in the playerNames
playerNames['Name'] = playerNames['Name'].str.replace('*','')

以下是输出示例:

Name
Anthony Davis PF
Lebron James SF
Kyle Kuzma SF
...

这是我想要的输出:

Name                Position
Anthony Davis          PF
Lebron James           SF
Kyle Kuzma             SF
...

我在网上查找了哪种方法是最好的,我看到了以下方法:strip、replace、remove、regex等。我还没有遇到一个例子,它会在第二个空格后剥离所有数据。任何帮助都将不胜感激。提前感谢您提供的任何帮助

此外,如果可能的话,我宁愿不使用regex。我还没有开始学习这个方法,因为它看起来很混乱,有点草率。如果这是唯一的办法,我仍然会心存感激。谢谢

这是更新后的代码。。。仍在进行中:


import pandas as pd
url = 'https://www.espn.com/nba/team/stats/_/name/lal/season/2020/seasontype/2'
df = pd.read_html(url)
playerNames = df[0]
playerNames['Position'] = playerNames['Name'].apply(lambda x: x.split()[-1])
playerNames['Position'] = playerNames['Name'].apply(lambda x: " ".join(x.split()[:-1]))
playerNames['Position'] = playerNames['Name'].apply(lambda x: x.split()[-1])
playerNames['Name'] = playerNames['Name'].apply(lambda x: " ".join(x.split()[:-1]))

相关内容

  • 没有找到相关文章

最新更新