为了账号安全,请及时绑定邮箱和手机立即绑定

如何在熊猫中分组然后总结值?

如何在熊猫中分组然后总结值?

小唯快跑啊 2021-06-28 10:00:37
我有下一个问题:我在 Pandas 中有一个数据框,它有一个属性“features”和另一个属性“VOTES”。'VOTES' 是数字,'features' 是在数据框中重复的字符串。我想根据特征分组并对 VOTES 的值求和,以获得下一个结果:最初的数据框:+----------+---------+| features | VOTES   |+----------+---------+| A        | 4       |+----------+---------+| V        | 3       |+----------+---------+| A        | 2       |+----------+---------+| C        | 9       |+----------+---------+我做了以下操作,但我在 VOTES 列上得到了 NaN 值。dataframe_clusters['VOTES'] = dataframe_clusters.groupby('features')['VOTES'].sum()我想得到下一个结果:+----------+---------+| features | VOTES   |+----------+---------+| A        | 6       |+----------+---------+| V        | 3       |+----------+---------+| C        | 9       |+----------+---------+
查看完整描述

3 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

你可以这样做:


dataframe_clusters.groupby('features').sum().reset_index()

输出:


  features  VOTES

0        A      6

1        C      9

2        V      3


查看完整回答
反对 回复 2021-07-13
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

从你的问题来看,你到底需要什么并不是很清楚。您正在执行的分组是可以的,但是由于某种原因,您要为其分配同一数据帧的列。我猜你最后需要加入。检查这个:


import pandas as pd

df = pd.DataFrame(data={'features':['A','V','A','C'], 'VOTES':[4,3,2,9]})

totals = df.groupby('features').sum()

print(df)

print(totals)

joined = df.join(totals, on='features', rsuffix='_total')

print(joined)

它会给你这个:


   VOTES features

0      4        A

1      3        V

2      2        A

3      9        C

          VOTES

features       

A             6

C             9

V             3

   VOTES features  VOTES_total

0      4        A            6

1      3        V            3

2      2        A            6

3      9        C            9


查看完整回答
反对 回复 2021-07-13
  • 3 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信