「这是我参与2022首次更文挑战的第20天,活动详情查看:2022首次更文挑战」。
在pandas中,如果相对数据进行分组,我们通常会用到的是groupby,分组的意思就是按照某种特征值对数据进行划分。例如,每个班级里男生女生的数量,我们就可以用性别来分组,具体怎么做呢?让我们来看看下面的例子。
df = pd.DataFrame({'key1':['a','a','b','b','b'],
'key2':['1','2','2','2','1'],
'data1':np.random.randn(5),
'data2':np.random.randn(5)})
df
因为没带自己的电脑,用的别人的电脑,没有安装python,所以就只能找一个在线的python编程器,可惜没有对应的库。所以今天主要介绍一下,没有结果展示了。
上面的代码中,我们可以按照key1,key2分别分组。例如,我们希望得到data2的值是按key1分组的,我们就可以这样做:
df1=df[data2].groupby(df['key1'])
但是这里的df1,它实际上没有执行任何的运算,所以当我们执行df1的时候,它只会告诉我们df1是一个groupby的对象。如果我们想要求得groupby后data1分别对应groupby的平均值,我们就可以执行一下的代码
df1.mean()
这样,我们就可以得到key1中a,b对应的data2的平均值。
分组的迭代功能:
groupby出来的对象,是支持迭代的,例如,下面例子,
for name ,group in df.groupby('key1')
print(name)
print(group)
因为今天没法演示,所以只能说一说结果了!结果会是name打印的是a对应的key2,data1,data2的值;而group打印的就是b对应的key2,data1,data2的值、
这大家有想过是否存在多重键这种用法吗,是存在的,就像上面的例子中,我们要求按照key1,key2来对data1进行分组,例如:
df2 = df[data1].groupby(['key1','key2'])
这时候,执行的逻辑是,先按照key1进行分组,然后再按照key2分组;也就是key1分完组后,有a,b两组,之后再从a,b两组中,进行key2的分组,(key2的分组,就是1,2)具体需要同学们去实操一下,或者等明天我用上自己电脑后可以补一个截图给大家参考!