首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python:将组大小连接到数据帧中的成员行

python:将组大小连接到数据帧中的成员行
EN

Stack Overflow用户
提问于 2014-09-14 01:23:16
回答 2查看 348关注 0票数 2

(Python 2.7)我希望在python数据帧中创建一列,其大小与成员行所属的组的大小相同(通过行ID编号进行索引)。分组基于日期和金额这两列中具有相同值的行。我尝试使用groubpy和size -这是针对类似问题的建议-但由于索引问题,我无法将结果大小值传回源数据帧。我是否应该使用字典来读取所有唯一值对,那会是什么样子?或者,我应该学习如何使用join操作将groupby对象合并到原始数据帧中。注意:这是一个大型数据集。

示例数据:

代码语言:javascript
运行
复制
                    date    amount  address
    ID          
    176820  1/4/2008 0:00   400     13496 ST LOUIS
    176821  1/4/2008 0:00   500     13475 NEWBERN
    176822  1/4/2008 0:00   2000    8011 DAYTON
    176823  1/4/2008 0:00   4000    13406 LONGVIEW
    176824  1/4/2008 0:00   7000    19174 ARCHDALE

以下是我认为可能有用的方法:

代码语言:javascript
运行
复制
    df['group_size'] = df.groupby(['date','amount']).size()

但是我收到了这样的消息: TypeError:插入的列的索引与框架索引不兼容

更新:elyase的解决方案适用于我发布的原始样本数据。我的源dataframe实际上有13列,而不是3列,但是elyase的解决方案即使在样例框架中添加了一列也不起作用。

代码语言:javascript
运行
复制
                     date  amount         address    tract
    ID                                                    
    176820  1/4/2008 0:00     400  13496 ST LOUIS   510200
    176821  1/4/2008 0:00     500   13475 NEWBERN   510400
    176822  1/4/2008 0:00    2000     8011 DAYTON   526200
    176823  1/4/2008 0:00    4000  13406 LONGVIEW   504200
    176824  1/4/2008 0:00    7000  19174 ARCHDALE   540200

我得到了错误:传递的错误项目数为1,索引表示为2

EN

回答 2

Stack Overflow用户

发布于 2014-09-14 01:59:37

您是否尝试过:

代码语言:javascript
运行
复制
df.groupby(['date','amount']).transform('count')
票数 1
EN

Stack Overflow用户

发布于 2014-09-14 23:26:57

为了得到组数,我需要对组中的任何其他变量进行计数。这里唯一的问题是,在amount列为空的情况下,size返回trace值,但这很容易处理。

代码语言:javascript
运行
复制
    df['group_size'] = df.groupby(['date','amount'])['tract'].transform('count') 
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25825720

复制
相关文章

相似问题

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