pandas:使用groupby对列值的数量求和

迈克尔·珀杜(Michael Perdue)

我有以下数据框:

url='https://raw.githubusercontent.com/108michael/ms_thesis/master/mpl.Bspons.merge.1'
df=pd.read_csv(url, index_col=0)
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')
df = df.set_index(['date'])

df.head(3)

    state   year    unemployment    log_diff_unemployment   id.thomas   party   type    bills   id.fec  years_exp   session     name                          disposition   catcode     naics
date                                                            
2006-05-01  AK  2006    6.6     -0.044452   1440    Republican  sen     s2686-109   S2AK00010   39  109     National Cable & Telecommunications Association     support     C4500   81
2006-05-01  AK  2006    6.6     -0.044452   1440    Republican  sen     s2686-109   S2AK00010   39  109     National Cable & Telecommunications Association     support     C4500   517
2007-03-27  AK  2007    6.3     -0.046520   1440    Republican  sen     s1000-110   S2AK00010   40  110     National Treasury Employees Union   support     L1100   NaN

我想对定义的每个组中的账单数进行求和catcode > disposition > id.fec我使用以下代码:

df['billsum'] = df.groupby([pd.Grouper(level='date', freq='A'), 'catcode', \
        'disposition', 'id.fec']).bills.transform('sum')

哪个返回

df.head(3)

    state   year    unemployment    log_diff_unemployment   id.thomas   party   type    bills   id.fec  years_exp   session     name                    disposition     catcode     naics   billsum
date                                                                
2006-05-01  AK  2006    6.6     -0.044452   1440    Republican  sen     s2686-109   S2AK00010   39  109     National Cable & Telecommunications Association     support     C4500   81  s2686-109s2686-109
2006-05-01  AK  2006    6.6     -0.044452   1440    Republican  sen     s2686-109   S2AK00010   39  109     National Cable & Telecommunications Association     support     C4500   517     s2686-109s2686-109
2007-03-27  AK  2007    6.3     -0.046520   1440    Republican  sen     s1000-110   S2AK00010   40  110     National Treasury Employees Union   support     L1100   NaN     s1000-110

该代码不返回每个组中包含的“数量”钞票,而是返回每个组中包含的所有钞票。我只想要每个组中的账单数量。有人对如何进行这项工作有想法吗?

耶斯列尔

我认为您需要的transform size不是sum

df['billsum'] = df.groupby([pd.Grouper(level='date', freq='A'), 'catcode', \
        'disposition', 'id.fec']).bills.transform('size')

print df.head(3)
           state    year  unemployment  log_diff_unemployment  id.thomas  \
date                                                                       
2006-05-01    AK  2006.0           6.6              -0.044452       1440   
2006-05-01    AK  2006.0           6.6              -0.044452       1440   
2007-03-27    AK  2007.0           6.3              -0.046520       1440   

                 party type      bills     id.fec  years_exp  session  \
date                                                                    
2006-05-01  Republican  sen  s2686-109  S2AK00010         39      109   
2006-05-01  Republican  sen  s2686-109  S2AK00010         39      109   
2007-03-27  Republican  sen  s1000-110  S2AK00010         40      110   

                                                       name disposition  \
date                                                                      
2006-05-01  National Cable & Telecommunications Association     support   
2006-05-01  National Cable & Telecommunications Association     support   
2007-03-27                National Treasury Employees Union     support   

           catcode naics  billsum  
date                               
2006-05-01   C4500    81        2  
2006-05-01   C4500   517        2  
2007-03-27   L1100   NaN        1  

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用pandas groupby求和并重命名旧列?

使用Pandas GroupBy从多个列中聚合唯一值

使用Groupby的Python Pandas条件求和

如何用pandas groupby对许多列求和?

Python Dataframe如何使用groupby对行值求和

在Pandas DataFrame上使用groupby添加任意数量的列并计算值

使用groupby按条件求和熊猫列

对重复的列进行分组,并使用pandas对相应的列值求和

计算groupby r列中不同值的数量

pandas数据框:基于公共列求和多列值

使用MultiIndex列在不同级别上求和还是groupby?

使用agg求和并应用列表的Groupby MultiIndex Pandas系列

Pandas Groupby并使用自定义值创建新列

使用第二列Python中的值从pandas列中删除特定数量的字母

Pandas Groupby:如何获取不同的列值

使用pyspark对列中的值求和

熊猫:在汇总某些值时使用groupby求和

使用groupby选择行,对列求和,并使用所有groupby元素的总和创建新列

在对Pandas DataFrame的列中的不匹配值求和时,如何强制groupby / sum?

如何在laravel中使用groupBy查询求和列?

将groupby与pandas一起使用后查找唯一列元素的数量

如何使用其他列值求和

使用awk将不同的列值求和

pandas 使用 groupby 和另一列值添加列条件

使用 vb.net 对随机数量的值求和

在 Pandas Python 中使用多索引数据透视表对列值求和

使用 groupby 列从 Min 和 Max 列值计算 Pandas Dataframe 的变化率

使用 GROUP BY 对行中列的值求和

Pandas:groupby 对列的子集求和

TOP 榜单

热门标签

归档