我希望有人能帮我找出最好的方法来安排我的数据帧做散点图。散点图应在x轴上显示年份,在y轴上显示外国玩家的百分比。DataFrame大约有400行,为了方便起见,我将显示一个值较少的head
我从一个更大的数据帧开始使用这个数据帧:
df1 = df.head(5).loc[:, ['Year', 'Nationality', 'Foreign Player']]
Year Nationality Foreign Player
0 2016 United States False
1 2016 United States False
2 2016 United States False
3 2016 United States False
4 2016 United States False
我做了一个groupby year和外国玩家制作的多索引数据框架:
df2 = df.groupby(['Year','Foreign Player']).count()[['Player']].head(6)
Player
Year Foreign Player
2000 False 26
True 2
2001 False 21
True 5
2002 False 20
True 5
我重置索引以生成单个索引数据帧:
df3 = df2.reset_index(level = [0,1]).head(6)
Year Foreign Player Player
0 2000 False 26
1 2000 True 2
2 2001 False 21
3 2001 True 5
4 2002 False 20
如您所见,True和False与不同列中的相应值交替出现。 我想做一些事情,比如:
df3['Percent Foreign'] = df3[['Foreign Player']= False] / (df3[['Foreign Player']= False ] + df3[['Foreign Player']= True)
显然,这是行不通的。我的目标是一个新的数据框架:
Year Percent Foreign
0 2000 15
1 2001 12
2 2002 5
3 2003 22
4 2004 17
例如,我可以使用Matplotlib绘制x=年和x=百分比。无论如何,如果有一个更简单的方法在早期的步骤中绘制这一点,它会更好
再次感谢
为了获得玩家的比例,我们可以创建两个新列,计算玩家总数和外国玩家总数,然后创建第三个列,将聚合的两个列分开
示例-简化数据帧
数一数行和外国人
查找比率:
对于select
False
,值被~
用在旋转掩码中,将Year
的值转换为索引并除以聚合sum
:另一个想法是通过^{} 改变
df2
:然后将
False
列除以两列之和:对于
True
的百分比:相关问题 更多 >
编程相关推荐