python对象group函数_如何对groupby对象应用多个函数
這是一個很好的機會來強調熊貓0.20的變化之一
這是什么意思?
考慮數據幀dfdf = pd.DataFrame(dict(
A=np.tile([1, 2], 2).repeat(2),
B=np.repeat([1, 2], 2).repeat(2),
C=np.arange(8)
))
df
A B C
0 1 1 0
1 1 1 1
2 2 1 2
3 2 1 3
4 1 2 4
5 1 2 5
6 2 2 6
7 2 2 7
我們以前可以做的
^{pr2}$
我們的名字'f1'和{}被放在列標題中。但是,熊貓0.20我得到了這個//anaconda/envs/3.6/lib/python3.6/site-packages/ipykernel/__main__.py:1: FutureWarning: using a dict on a Series for aggregation
is deprecated and will be removed in a future version
if __name__ == '__main__':
那這是什么意思?如果我在沒有命名字典的情況下做兩個lambdas怎么辦?在df.groupby(['A', 'B']).C.agg([lambda x: x.size, lambda x: x.max()])
-
SpecificationError Traceback (most recent call last)
in ()
> 1 print(df.groupby(['A', 'B']).C.agg([lambda x: x.size, lambda x: x.max()]))
//anaconda/envs/3.6/lib/python3.6/site-packages/pandas/core/groupby.py in aggregate(self, func_or_funcs, *args, **kwargs)
2798 if hasattr(func_or_funcs, '__iter__'):
2799 ret = self._aggregate_multiple_funcs(func_or_funcs,
-> 2800 (_level or 0) + 1)
2801 else:
2802 cyfunc = self._is_cython_func(func_or_funcs)
//anaconda/envs/3.6/lib/python3.6/site-packages/pandas/core/groupby.py in _aggregate_multiple_funcs(self, arg, _level)
2863 if name in results:
2864 raise SpecificationError('Function names must be unique, '
-> 2865 'found multiple named %s' % name)
2866
2867 # reset the cache so that we
SpecificationError: Function names must be unique, found multiple named
pandas在名為''的多個列上出現錯誤
解決方案:命名函數def f1(x):
return x.size
def f2(x):
return x.max()
df.groupby(['A', 'B']).C.agg([f1, f2])
f1 f2
A B
1 1 2 1
2 2 5
2 1 2 3
2 2 7
總結
以上是生活随笔為你收集整理的python对象group函数_如何对groupby对象应用多个函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 节气计算_python 生
- 下一篇: python调用kafka拉取数据失败_