pandas.DataFrame.groupby
Pandas Groupby 的一些小特性
- 在执行 Groupby 是,其会默认的对key执行排序。(如果是数值型的Key就会看得非常明显。)
- 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 实在是值得一说