首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫value_counts() +权重

熊猫value_counts() +权重
EN

Stack Overflow用户
提问于 2019-12-19 00:07:02
回答 1查看 1.3K关注 0票数 2

我有一个这样的Pandas数据帧:

代码语言:javascript
复制
df = pd.DataFrame({'id': [121, 34324, 111, 12, 45, 232],
              'weight': [10, 2, 80, 49, 71, 18],
              'var_bool': [True, True, False, True, False, True],
              'var_cat': ['red', 'blue', 'red', 'green', 'green', 'blue']})

df['var_bool'] = df['var_bool'].astype('bool')
df['var_cat'] = df['var_cat'].astype(pd.api.types.CategoricalDtype())

我想应用一个函数来计算唯一标签的出现频率,其权重由" weight“列给出:

代码语言:javascript
复制
df['var_bool'].value_counts() #I need to consider the weight of each row
df['var_cat'].value_counts() #I need to consider the weight of each row

该函数必须同时适用于"var_bool“和"var_cat",可能需要使用快速引擎(数据帧相当大)。非常感谢!

编辑:结果应该是:

代码语言:javascript
复制
#for "var_bool"
True 79
False 151

#for "var_cat"
red 90
blue 20
green 120
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-19 00:12:43

我不认为没有groupby就能做到这一点。

代码语言:javascript
复制
df.groupby('var_bool')['weight'].sum()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59395950

复制
相关文章

相似问题

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