panda中的groupby和函数调用



我有一个数据帧,其中有一列"Name"。名称具有多个值,如sample1、sample2和sample3。我想将一个函数应用于所有"名称"列中值相同的组。

输出:

Name  Value  Result
0  Name1      2       5
1  Name1      3       5
2  Name2      1      11
3  Name2      4      11
4  Name2      6      11
5  Name3      8      10
6  Name3      2      10

看起来您想要一个groupby.apply。像这样的东西应该起作用:

import pandas as pd
df = # ... load your data
def group_sum(g):
g["Result"] = g["Value"].sum()
return g
df_grouped = df.groupby("Name").apply(group_sum)

编辑:Alexandre Nixon的答案更适合这个用例。

Df.groupby('Name').apply(lambda x: function (x.value))

将工作,在x.value你可以把你的列名

最新更新