首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用groupby和find ratio

使用groupby和find ratio
EN

Stack Overflow用户
提问于 2020-02-21 01:44:58
回答 1查看 29关注 0票数 0

输入:

代码语言:javascript
运行
复制
  Boro Completed?
0    M          Y
1    M          Y
2    Q          N
3    Q          Y
4    Q          Y

所需输出:

代码语言:javascript
运行
复制
  Boro Completed?  Ratio
0    M          Y    1
1    M          Y    1
2    Q          N    0.67
3    Q          Y    0.67
4    Q          Y    0.67

正如你所看到的,M boro是完全完整的,而Q不是。我想展示的是人权法案的完成率。

目前我只有总体完成率,不知道如何使用groupby。

代码语言:javascript
运行
复制
data = {'Boro':['M','M','Q','Q','Q'],
       'Completed?':['Y','Y','N','Y','Y']}
df = pd.DataFrame(data)
df['Ratio'] = df[df['Completed?'] == 'Y'].shape[0]/df.shape[0]
EN

回答 1

Stack Overflow用户

发布于 2020-02-21 01:49:48

我们做transform

代码语言:javascript
运行
复制
s=df['Completed?'].ne('N').groupby(df['Boro']).transform('mean')
Out[66]: 
0    1.000000
1    1.000000
2    0.666667
3    0.666667
4    0.666667
Name: Completed?, dtype: float64
df['ratio']=s
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60325789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档