我有一个数据帧,其中有一列"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你可以把你的列名