我很难将自定义函数应用于Pandas中的每一组groupby
列
我的自定义函数接受一系列数字,并接受连续对的差异,并返回所有差异的平均值。下面是代码:
def mean_gap(a):
b = []
for i in range(0, len(a)-1):
b.append((a[i+1]-a[i]))
return np.mean(b)
字符串
如果a = [1,3,7]
,mean_gap(a)
会给予((3-1)+(7-3))/2) = 3.0
Dataframe:
one two
a 1
a 3
a 7
b 8
b 9
型
预期结果:
Dataframe:
one two
a 3
b 1
型df.groupby(['one'])['two'].???
个
我是pandas的新手。我读到groupby
一次接受每行的值,而不是完整的序列。所以我不能在groupby
之后使用lambda。
1条答案
按热度按时间q9rjltbz1#
使用自定义函数,您可以:
字符串
并重置索引:
型
另一种办法是:
型
您的方法也适用于以下情况:
型
a = np.asarray(a)
是必要的,因为否则您将在b.append((a[i+1]-a[i]))
中获得KeyErrors。