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

我有下一个问题:我在 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       |

+----------+---------+


小唯快跑啊
浏览 112回答 3
3回答

天涯尽头无女友

你可以这样做:dataframe_clusters.groupby('features').sum().reset_index()输出:  features  VOTES0        A      61        C      92        V      3

翻过高山走不出你

从你的问题来看,你到底需要什么并不是很清楚。您正在执行的分组是可以的,但是由于某种原因,您要为其分配同一数据帧的列。我猜你最后需要加入。检查这个:import pandas as pddf = 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 features0      4        A1      3        V2      2        A3      9        C          VOTESfeatures       A             6C             9V             3   VOTES features  VOTES_total0      4        A            61      3        V            32      2        A            63      9        C            9
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python