首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python按对象dtype分配组

Python按对象dtype分配组
EN

Stack Overflow用户
提问于 2015-08-07 18:54:00
回答 1查看 1K关注 0票数 0

这个python DataFrame

代码语言:javascript
运行
复制
df = pd.DataFrame({'ID': [3553102778, 3553102958, 3553103948, 3553103948, 3553104038, 3553104038, 3553104128, 3553104218, 3557580098], 'Based on': ['CTR', 'CTR', 'Conv rate', 'CTR', 'Conv rate', 'CTR', 'CTR', 'CTR', 'CTR']}, columns=['ID', 'Based on'])

生成如下所示的DataFrame:

代码语言:javascript
运行
复制
           ID   Based on
0  3553102778        CTR
1  3553102958        CTR
2  3553103948  Conv rate
3  3553103948        CTR
4  3553104038  Conv rate
5  3553104038        CTR
6  3553104128        CTR
7  3553104218        CTR
8  3557580098        CTR

注意ID 35531039483553104038是如何同时拥有Conv rateCTR

我如何根据ID对此进行分组,同时也为Based on分配Conv rate, CTR的值以获得此值?

代码语言:javascript
运行
复制
           ID        Based on
0  3553102778             CTR
1  3553102958             CTR
2  3553103948  Conv rate, CTR
4  3553104038  Conv rate, CTR
6  3553104128             CTR
7  3553104218             CTR
8  3557580098             CTR

我认为这是某种groupby和赋值一行,但我不知道如何检测行外是否存在与当前行的ID相等的其他ID

也许是groupbyapply的结合?我还不熟悉apply

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-02 19:15:36

您可以在组上使用apply,这允许您转换组。这意味着内部的函数为具有相同ID的每一组条目返回一些内容。

组应用

g = df.groupby("ID") s = g["Based on"].apply(lambda group: group.values) s.to_frame()

S是一个系列,您可能希望转换为dataframe。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31884771

复制
相关文章

相似问题

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