各位同事,向大家问好!我有以下任务:我有一个包含条件列的 DataFrame,它有许多其他类别,我需要将它们取消分组。
df_3['Критерий'].unique()
array(['views', 'visitors', 'gender', 'age', 'gender_age', 'members',
'reach_subscribers'], dtype=object)
我还附上了数据的片段:
Дата Критерий Парам. №1 Парам. №2 Значение
0 26.12.2023 views NaN NaN 201
1 26.12.2023 visitors NaN NaN 139
2 26.12.2023 gender Ж NaN 95
3 26.12.2023 gender М NaN 33
4 26.12.2023 age 1-18 NaN 2
5 26.12.2023 age 18-21 NaN 5
6 26.12.2023 age 21-24 NaN 14
7 26.12.2023 age 24-27 NaN 8
8 26.12.2023 age 27-30 NaN 14
9 26.12.2023 age 30-35 NaN 29
10 26.12.2023 age 35-45 NaN 36
11 26.12.2023 age 45+ NaN 17
12 26.12.2023 gender_age Ж 1-18 2
13 26.12.2023 gender_age Ж 18-21 3
14 26.12.2023 gender_age Ж 21-24 9
15 26.12.2023 gender_age Ж 24-27 6
16 26.12.2023 gender_age Ж 27-30 12
17 26.12.2023 gender_age Ж 30-35 20
18 26.12.2023 gender_age Ж 35-45 27
19 26.12.2023 gender_age Ж 45+ 14
20 26.12.2023 gender_age М 18-21 2
21 26.12.2023 gender_age М 21-24 5
22 26.12.2023 gender_age М 24-27 2
23 26.12.2023 gender_age М 27-30 2
24 26.12.2023 gender_age М 30-35 9
25 26.12.2023 gender_age М 35-45 9
26 26.12.2023 gender_age М 45+ 3
60 26.12.2023 members Новые участники NaN 7
61 25.12.2023 views NaN NaN 1375
62 25.12.2023 visitors NaN NaN 765
63 25.12.2023 gender Ж NaN 521
64 25.12.2023 gender М NaN 180
我需要按名称取消对条件的分组,例如:所有条件的年龄、视图、访问者等,并使它们成为具有其值的 DataFrame 的一部分。
我尝试用这个命令来做到这一点:
#df_3.groupby('Критерий', as_index =False).aggregate({'Значение' : 'sum'})
事实并非如此:
Критерий Значение
0 age 24012
1 gender 24543
2 gender_age 24012
3 members 2958
4 reach_subscribers 287952
5 views 45416
6 visitors 25892
我想看到的结果是:
Дата Критерий Парaметр Значение
26.12.2023 gender-age Ж,1-18 5
26.12.2023 gender-age М,1-18 7
26.12.2023 gender-age Ж,18-21 11
26.12.2023 gender-age М,18-21 13
26.12.2023 views - 1000
如果您想将所需的金额添加到原始数据帧的每一行,那么您需要使用连接词
.groupby()
-.transform()
:我不确定我是否正确理解了这个问题,但您很好可以按多列进行分组:
对于问题中给出的示例,结果将是: