显示序列值和过滤器值

2024-05-12 20:23:13 发布

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

per_of_runs_all_bowl是这样一个序列

Abdur Razzak       44.915254
Ajit Agarkar       31.250000
Albie Morkel       41.538462
Alok Kapali        16.666667
Andre Nel          50.000000
Andrew Flintoff    43.636364
Andrew Symonds     20.833333
Brad Hodge         41.666667
Brett Lee          42.763158
Chamara Silva      41.666667
Chaminda Vaas      49.541284
Chamu Chibhabha    44.736842
Chris Gayle        25.000000
Chris Martin       50.000000
Chris Schofield    38.461538
...

data1.groupby(['bowler']).size()看起来像这样

Abdur Razzak       118
Ajit Agarkar        48
Albie Morkel        65
Alok Kapali         12
Andre Nel           24
Andrew Flintoff    110
Andrew Symonds      72
Brad Hodge          12
Brett Lee          152
Chamara Silva       12
Chaminda Vaas      109
Chamu Chibhabha     38
Chris Gayle         24
Chris Martin        92
Chris Schofield     78
...

per_of_runs_all_bowl.loc[(data1.groupby(['bowler']).size() > 60)]返回.size()大于60的“运行百分比”。。像这样

Abdur Razzak           44.915254
Albie Morkel           41.538462
Andrew Flintoff        43.636364
Andrew Symonds         20.833333
Brett Lee              42.763158
Chaminda Vaas          49.541284
Chris Martin           50.000000
Chris Schofield        38.461538
Daniel Vettori         42.758621
Dilhara Fernando       61.467890
Dimitri Mascarenhas    30.952381
Gayan Wijekoon         25.000000
Harbhajan Singh        32.394366
Irfan Pathan           45.652174
Jacob Oram             23.750000
James Anderson         48.484848
...

如何将“运行百分比”与这样的大小一起返回?你知道吗

Abdur Razzak           44.915254     118
Albie Morkel           41.538462      65
Andrew Flintoff        43.636364     110
Andrew Symonds         20.833333      72
Brett Lee              42.763158     152

Tags: sizechrismartinandrewleebrettabdursymonds
2条回答

试试这个:

df = pd.DataFrame({'size': data1.groupby(['bowler']).size(), 'percent of runs':per_of_runs_all_bowl})
df[df['size'] > 60]

这个解决方案相当有效。你知道吗

除了这个,我想不出别的了

我创建了一个新的数据帧

new_df = pd.DataFrame({'size':data1.groupby(['bowler']).size(),'per':list(per_of_runs_all_bowl.values)})

然后根据大小进行过滤

new_df_fil = new_df[new_df['size'] > 60]

                      per        size
bowler      
Abdur Razzak          4.237288   118
Albie Morkel          9.230769   65
Andrew Flintoff       8.181818   110
Andrew Symonds       15.277778   72
Brett Lee            10.526316   152

但这有效率吗?我相信一定有'Python'和'熊猫ic'的方式做这件事!你知道吗

相关问题 更多 >