Pandas Groupby


pandas.DataFrame.groupby

Pandas Groupby 的一些小特性

  1. 在执行 Groupby 是,其会默认的对key执行排序。(如果是数值型的Key就会看得非常明显。)
  2. df.groupby('A') 实际等同于 df.groupby(df['A']),上述的写法是 Pandas 的语法糖,df['A'] 可以理解为提供了一个等长的分组对象,用于分组。 例如:
# df
#  USER_ID OCCUPATION  LEVEL
# 0      张三       餐厅老板      1
# 1      李四       餐厅老板      1
# 2      王五         厨师      2

df['USER_ID'].groupby([1,1,2]).get_group(1)
# 0    张三
# 1    李四

这里实际上就是根据传入的列表进行了分组。

重要参数

对于 .groupby 存在如下参数,需要特别注意:

axis : {0 or 'index', 1 or 'columns'}, default 0

这个用来选择是针对 列,还是行来进行 groupby,一般都是针对 index,所以基本不用修改

as_index : bool, default True

这块的区别在于,如果为 True,则 index 是 groupby 的列,如果是 Flase,则是自增序列,这块我个人觉得 False 更方便一点。

pandas.core.groupby.SeriesGroupBy.unique

返回 Series 对象的唯一值。注意,此处返回的每行是一个 array。 这个在对于 一对多数据集,然后根据主键进行“合并”的时候很有用,比如一篇文章有多个标签,需要将每篇文章的标签集合为一个列表,就可以使用这个方法。

Pandas Groupby 实在是值得一说