pandas-groupby - Pandas groupby sum - 对两个变量进行分组,对所有其他数值变量求和并更改原始数据框
问题描述
如上所述,我想按两个变量('town_code','ballot')分组,将这些组中所有数字变量(政党的票数)相加,并实际更改原始数据框(称为“结果”,要分组)。请注意,数据框还包含一个非数字列 - 这是名称。每个组内的名称都是相同的,所以我只需要确保它在该过程之后保持不变。
同时,我设法只保留数字变量,同时丢失非数字和 groupby 变量,使用这行代码:
results = results.groupby(['town_code','ballot']).sum()
解决方案
我认为下面的代码可以满足您所需的解决方案
import pandas as pd
town_code=[1,1,1,1,2,2,2,3,3,4,4]
ballot=[1,2,3,3,1,2,2,1,2,1,2]
town_name=['townsville','townsville','townsville','townsville','citysville','citysville'
,'citysville','villagesville','villageville','policeville','policeville']
party_a=[14,11,14,10,8,7,16,9,13,12,9]
party_b=[13,17,9,11,9,15,19,21,15,8,11]
df=pd.DataFrame({'town_code':town_code,'ballot':ballot,'town_name':town_name,
'party_a':party_a,'party_b':party_b})
import numpy as np
pd.pivot_table(df,values=['party_a','party_b'],
index=['town_code','ballot','town_name'],aggfunc=np.sum)
推荐阅读
- erlang - 如何正确更新 gen_statem 中的 state_timeout?
- python - 需要更有效的日期时间转换/转换为 pandas
- android - 升级后的 Android Studio 错误“Gradle 同步失败:...”
- curl - cURL:在使用多个 glob 时防止迭代
- ios - 如何将 Google PRIVATE_KEY 转换为 Base64 编码签名
- android - 是否可以在 Flutter 中用图像填充 ExpansionTile 标题?
- xml - 需要执行嵌套数字排序 (xslt 1.0)
- angular - 在后端(.Net)和前端(角度)之间共享 JWT 令牌
- java - 带有泛型的生成器
- flutter - 我在使用包 CarouselSlider 时遇到错误,它显示错误类型“图像”不是颤振中“字符串”类型的子类型