Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这个';级别';Pandas works中groupby方法的参数?_Python_Pandas_Pandas Groupby_Data Science - Fatal编程技术网

Python 这个';级别';Pandas works中groupby方法的参数?

Python 这个';级别';Pandas works中groupby方法的参数?,python,pandas,pandas-groupby,data-science,Python,Pandas,Pandas Groupby,Data Science,在上面的代码中,为什么需要在groupby中指定level参数,因为据我所知,level参数仅在数据帧中有多索引时才需要 不仅多索引,它也应该在索引中使用,因为只有一个级别 对于具有指定聚合列的函数,还需要传递元组列表,以指定具有聚合函数的新列的名称: (df.set_index('STNAME').groupby(level=0)['CENSUS2010POP'] .agg({'avg': np.average, 'sum': np.sum})) 未来警告:在序列上使用dict进行聚合

在上面的代码中,为什么需要在groupby中指定level参数,因为据我所知,level参数仅在数据帧中有多索引时才需要

不仅
多索引
,它也应该在
索引
中使用,因为只有一个级别

对于具有指定聚合列的函数,还需要传递元组列表,以指定具有聚合函数的新列的名称:

(df.set_index('STNAME').groupby(level=0)['CENSUS2010POP']
   .agg({'avg': np.average, 'sum': np.sum}))
未来警告:在序列上使用dict进行聚合 已弃用,将在将来的版本中删除 .agg({'avg':np.average,'sum':np.sum}))


但您的代码应该更简单:

df1 = (df.groupby('STNAME')['CENSUS2010POP']
         .agg({'avg': np.average, 'sum': np.sum}))
另外,如果确实需要从
STNAME
列创建索引,或者已经在熊猫(0.20+)的数据帧中工作:

df = pd.DataFrame({'STNAME':list('aab'),
                   'CENSUS2010POP':[10,20,50]})

df1 = (df.groupby('STNAME')['CENSUS2010POP']
         .agg([('avg', np.average), ('sum', np.sum)]))
print (df1)
        avg  sum
STNAME          
a        15   30
b        50   50
(df.set_index('STNAME').groupby('STNAME')['CENSUS2010POP']
   .agg([('avg', np.average), ('sum', np.sum)]))