如何从交替的布尔行创建新的Pandas DataFrame,以便可以绘制新的DataFrame?

亚历杭德罗

我希望有人可以帮助我找出安排DataFrame进行散点图的最佳方法。散点图在x轴上应该有年份,在y轴上应该有外国玩家百分比。DataFrame大约有400行,为方便起见,我将显示一个具有较少值的头。

我从一个较大的DataFrame开始使用此DataFrame:

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

我按年分组,外国玩家将其设为多索引DataFrame:

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

我将索引重置为一个索引DataFrame:

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)

显然,这是行不通的。我的目标是建立一个新的DataFrame:

    Year    Percent Foreign 
0   2000    15
1   2001    12          
2   2002    5           
3   2003    22          
4   2004    17  

    

这样,我可以使用Matplotlib绘制x =年和x =外国百分比。无论如何,如果有一种更简单的方法可以在较早的步骤中进行绘制,那就更好了。

再次感谢!

耶斯列尔

对于selectFalse值,用于将mask~转换为in ,将的值转换Year为index并除以合计sum

print (df3)
  Year  Foreign Player  Player
0  2000           False      26
1  2000            True       2
2  2001           False      21
3  2001            True       5
4  2002           False      20
4  2002            True      10

df4 = (df3[~df3['Foreign Player']].set_index('Year')['Player'] / 
       df3.groupby('Year')['Player'].sum()).mul(100).reset_index(name='Percent Foreign')

print (df4)
   Year  Percent Foreign
0  2000        92.857143
1  2001        80.769231
2  2002        66.666667

另一个想法是df2通过Series.unstack以下方式进行更改

df22 = df.groupby(['Year','Foreign Player'])['Player'].count().unstack()
print (df22)
Foreign Player  False  True 
Year                        
2000               26      2
2001               21      5
2002               20     10

然后将False两列相加除以列:

df4 = (df22[False] / df22.sum(axis=1)).mul(100).reset_index(name='Percent Foreign')

print (df4)
   Year  Percent Foreign
0  2000        92.857143
1  2001        80.769231
2  2002        66.666667

对于Trues的百分比

df5 = (df22[True] / df22.sum(axis=1)).reset_index(name='Percent Foreign') 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何清除react中的传单地图,以便可以映射新数据?

来自分类Dev

如何创建类的词典,以便可以使用键来确定要初始化的新类?

来自分类Dev

递增 id++ 并保存新的递增值,以便可以再次调用和递增

来自分类Dev

在Xcode中,如何创建一个新的工作区并向其中添加一个项目,以便可以看到该项目及其文件?

来自分类Dev

如何创建一个新的布尔列来处理前 n 行的信息

来自分类Dev

如何使用原始DF的索引创建新的DataFrame重复行

来自分类Dev

如何使用新的(不同的)值更新 Pandas DataFrame 行的子集?

来自分类Dev

如何从布尔值的Pandas DataFrame创建频率分布矩阵

来自分类Dev

Pandas DataFrame 乘以列并创建新列

来自分类Dev

创建新DataFrame的性能

来自分类Dev

在php类中动态创建方法,以便可以访问$ this

来自分类Dev

创建我自己的颜色图,以便可以在Matlab中的一张图像上绘制两种不同的颜色

来自分类Dev

在同时具有Snap和Apt的情况下,如何备份所有应用程序,以便可以将其还原到新计算机上

来自分类Dev

如何降低for循环的速度,以便可以看到颜色?

来自分类Dev

如何抵消我的栏目,以便可以单击链接?

来自分类Dev

如何打开多个终端,以便可以打开多个外壳?

来自分类Dev

如何索引数据框以便可以扩充?

来自分类Dev

我可以格式化matlab命令的输出,以便可以使用它声明一个新变量吗?

来自分类Dev

遍历pandas DataFrame以计算新的行值

来自分类Dev

如何基于另一个 DataFrame 中的列在 Pandas DataFrame 中创建新列?

来自分类Dev

在宽 Pandas DataFrame 中创建一个带有零的新行

来自分类Dev

如何在函数中修改pandas DataFrame,以便调用者可以看到更改?

来自分类Dev

如何在一行中拆分单词以在DataFrame中创建新行?

来自分类Dev

熊猫-Groupby并创建新的DataFrame?

来自分类常见问题

如何创建静态类的实例,以便可以从单独的类中调用它?

来自分类Dev

如何创建密钥和机密,以便可以发布到存储桶?

来自分类Dev

如何从DefaultModelList创建列表,以便可以使用JAXB编组为XML?

来自分类Dev

如何保留R包的源文件,以便可以创建标签并跳转到vim中的定义

来自分类Dev

QML-如何创建QML组件属性,以便可以从JavaScript进行设置?

Related 相关文章

  1. 1

    如何清除react中的传单地图,以便可以映射新数据?

  2. 2

    如何创建类的词典,以便可以使用键来确定要初始化的新类?

  3. 3

    递增 id++ 并保存新的递增值,以便可以再次调用和递增

  4. 4

    在Xcode中,如何创建一个新的工作区并向其中添加一个项目,以便可以看到该项目及其文件?

  5. 5

    如何创建一个新的布尔列来处理前 n 行的信息

  6. 6

    如何使用原始DF的索引创建新的DataFrame重复行

  7. 7

    如何使用新的(不同的)值更新 Pandas DataFrame 行的子集?

  8. 8

    如何从布尔值的Pandas DataFrame创建频率分布矩阵

  9. 9

    Pandas DataFrame 乘以列并创建新列

  10. 10

    创建新DataFrame的性能

  11. 11

    在php类中动态创建方法,以便可以访问$ this

  12. 12

    创建我自己的颜色图,以便可以在Matlab中的一张图像上绘制两种不同的颜色

  13. 13

    在同时具有Snap和Apt的情况下,如何备份所有应用程序,以便可以将其还原到新计算机上

  14. 14

    如何降低for循环的速度,以便可以看到颜色?

  15. 15

    如何抵消我的栏目,以便可以单击链接?

  16. 16

    如何打开多个终端,以便可以打开多个外壳?

  17. 17

    如何索引数据框以便可以扩充?

  18. 18

    我可以格式化matlab命令的输出,以便可以使用它声明一个新变量吗?

  19. 19

    遍历pandas DataFrame以计算新的行值

  20. 20

    如何基于另一个 DataFrame 中的列在 Pandas DataFrame 中创建新列?

  21. 21

    在宽 Pandas DataFrame 中创建一个带有零的新行

  22. 22

    如何在函数中修改pandas DataFrame,以便调用者可以看到更改?

  23. 23

    如何在一行中拆分单词以在DataFrame中创建新行?

  24. 24

    熊猫-Groupby并创建新的DataFrame?

  25. 25

    如何创建静态类的实例,以便可以从单独的类中调用它?

  26. 26

    如何创建密钥和机密,以便可以发布到存储桶?

  27. 27

    如何从DefaultModelList创建列表,以便可以使用JAXB编组为XML?

  28. 28

    如何保留R包的源文件,以便可以创建标签并跳转到vim中的定义

  29. 29

    QML-如何创建QML组件属性,以便可以从JavaScript进行设置?

热门标签

归档