大熊猫在groupby中发生了什么?

时间:2019-09-26 09:49:15

标签: python python-3.x pandas pandas-groupby

我想知道大熊猫中groupby对象的过滤,聚合和转换方法如何遍历数据帧

为此,我尝试了此数据集:

df = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv")

现在我尝试打印这三种方法迭代的每个对象的形状。

用于过滤器:

df.groupby('day').filter(lambda x: print(x.shape))
out: (19, 7)
 (87, 7)
 (76, 7)
 (62, 7)

所以x是每个组的数据框。足够公平

对于汇总:

df.groupby('day').agg(lambda x: print(x.shape))
out: (19,)
(87,)
(76,)
(62,)
(19,)
(87,)
(76,)
(62,)
(19,)
(87,)
(76,)
(62,)
(19,)
(87,)
(76,)
(62,)
(19,)
(87,)
(76,)
(62,)
(19,)
(87,)
(76,)
(62,)

因此,aggreagate遍历每个列和逐列的组。我明白了

我无法理解转换方法的功能。类似地打印类型我明白了

df.groupby('day').transform(lambda x: print(x.shape))
out:(19,)
(19,)
(19,)
(19,)
(19,)
(19,)
(19, 6)
(87,)
(87,)
(87,)
(87,)
(87,)
(87,)
(76,)
(76,)
(76,)
(76,)
(76,)
(76,)
(62,)
(62,)
(62,)
(62,)
(62,)
(62,)

如您所见,它遍历所有列的第一组,然后以某种方式在其中存在一个数据帧(19,6),然后它不再出现,并且迭代通常遍历所有组。请帮助我了解transform方法的作用

0 个答案:

没有答案