您的位置: 网站首页> Pandas教程> 当前文章

pandas中groupby之Grouper and axis must be same length

老董-我爱我家房产SEO2022-01-13163围观,119赞

  在pandas中groupby操作是非常常见的,在分组操作中也有很多坑,你可能遇见过这个坑Grouper and axis must be same length。那么这报错的原因是什么呢?

  顾名思义,就是分组所依据的序列的值和df的数据长度不一致。这么说可能比较抽象,咱们用例子说明下。

  1、我们先看1个正常的分组。

  一般而言,groupby列名是按照列名进行分组,但是官方文档提过groupby的参数可以是np数组(If an ndarray is passed, the values are used as-is to determine the groups.)。代码如下:

# -*- coding:utf-8 -*-
df = pd.DataFrame({'Animal': ['Falcon', 'Falcon','Parrot', 'Parrot'],
                   'Speed': [380., 370., 24., 26.],
                   })
values = np.array(['Falcon', 'Falcon','Parrot', 'Parrot'])
print(df.groupby(values).max())
        Animal  Speed
Falcon  Falcon    380.0
Parrot  Parrot    26.0

  2、再看看报错Grouper and axis must be same length的分组

  为我们把np数组的长度减少一点就可以看出端倪。

# -*- coding:utf-8 -*-
df = pd.DataFrame({'Animal': ['Falcon', 'Falcon','Parrot', 'Parrot'],
                   'Speed': [380., 370., 24., 26.],
                   })
values = np.array(['Falcon', 'Falcon','Parrot'])
print(df.groupby(values).max())
 ...raise ValueError("Grouper and axis must be same length")
ValueError: Grouper and axis must be same length

  通过上面的例子就能看出来,要想避免Grouper and axis must be same length,就得让df的序列长度和要分组的序列长度保持一致。

  如果想全面了解分组聚合的场景,可以参考文章pandas之groupby使用详解

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会

文章评论

    pandas中groupby之Grouper and axis must be same length文章写得不错,值得赞赏

站点信息

  • 网站程序:Laravel
  • 客服微信:a772483200