在Python/Pandas DataFram的列中按字符索引

2024-06-16 10:08:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个项目,在这个项目中,我从ESPN收集NBA数据,并创建了一个数据帧来存储它。我的DataFrame中有一列是Team。某些在一个赛季内被交易的球员在球队下面有一个价值,比如LAL/LAC,而不是像LAL那样只有一个球队名字。对于这些数据行,我希望输入2个条目而不是1个条目。两个条目将具有相同的原始数据,但其中一个条目的团队名称将为LAL,而对于另一个条目,团队名称将为LAC。有些团队缩写是2个字母,而另一些是3个字母。在

我已经设法用这些数据行创建了一个单独的数据帧,这些数据行的值形式为team1/team2。我想了一个很好的方法来获得我想要的数据,那就是首先用多个team条目复制这个DataFrame,然后用一个DataFrame,将team列中的所有内容保留到/,然后使用另一个方法,将所有内容保留在斜杠后面的team列中。我不太确定在一个数据帧的上下文中,代码是什么。我尝试了以下方法,但语法无效:

first_team =  first_team['TEAM'].str[:first_team[first_team['TEAM'].index("/")]]

其中first_team是我的数据帧,只包含多个团队的条目。也许这能让你更好地了解我要达到的目标!在

提前谢谢!在


Tags: 数据项目方法名称内容dataframe字母条目
1条回答
网友
1楼 · 发布于 2024-06-16 10:08:33

您最好先使用split将团队分成列(另请参见Pandas DataFrame, how do i split a column into two),如下所示:

d = pd.DataFrame({'player':['jordan','johnson'],'team':['LAL/LAC','LAC']})
pd.concat([d, pd.DataFrame(d.team.str.split('/').tolist(), columns =  ['team1','team2'])], axis = 1)

    player     team team1 team2
0   jordan  LAL/LAC   LAL   LAC
1  johnson      LAC   LAC  None

如果需要单独的行,可以使用append。在

相关问题 更多 >