2016-01-13 155 views
1

我正在研究一个项目,其中我从ESPN中挖掘了NBA数据并创建了一个DataFrame来存储它。我的DataFrame的其中一列是Team。某些在一个赛季内交易过的球员在团队中拥有像LAL/LAC这样的价值,而不是像LAL那样拥有一个球队名称。有了这些数据行,我想让2个条目而不是1个。两个条目将具有相同的原始数据,除了其中一个条目的团队名称将是LAL并且另一个条目的团队名称将是LAC。一些团队缩写是2个字母,而另外一些是3个字母。在Python/Pandas DataFrame的列中按字符进行索引

我已经设法创建一个单独的DataFrame,只有这些数据行的值为team1/team2。我想通过这种方式获取数据的方式是,首先将该DataFrame复制到多个团队条目中,然后使用一个DataFrame将所有内容保留在Team列中,直到/和另一个保持一致斜线后面的Team列中的所有内容。我不太清楚在DataFrame的上下文中代码是什么。我尝试以下,但它是无效的语法:

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

其中FIRST_TEAM是我的数据框只与多支球队的条目。也许这可以让你更好地了解我想要完成的事情!

提前致谢!

回答

0

你可能最好使用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

+0

这很好,谢谢!然而,我有点困惑,关于如何将行分开。我有我的数据框与团队,team1,team2和team3列(一些球员实际上交易了两次,结果是在三支球队)。现在如何使用append来为每个团队创建多个条目(即,如果某个玩家的原始团队值为lal/lac,那么整个行应该被删除并替换为两个单独的行,两者都保留原始行/列数据在我的数据框中超过10列),但其中一个具有lal团队价值,另一个具有lac。 –

相关问题