У меня есть DataFrame с мультииндексом. Уровни gender
, type
и, наконец, age
. где я хочу заменить значение одного возраста другим в этой группе. Я думаю, мне нужно использовать .groupby()
.
Ниже я привожу пример проблемы, которая у меня есть.
Это датафрейм, который у меня изначально:
Index Gender Type Age Value
0 'f' 'a' 0 'A1'
1 'f' 'a' 1 'A2'
2 'f' 'a' 2 'B1'
3 'f' 'a' 3 'xx'
4 'f' 'a' 4 'B5'
5 'f' 'a' 5 'F3'
6 'f' 'a' 6 'B6'
7 'f' 'a' 7 'Q10'
8 'f' 'a' 8 'A3'
9 'f' 'a' 9 'A1'
10 'f' 'b' 0 'D1'
11 'f' 'b' 1 'V2'
12 'f' 'b' 2 'V1'
13 'f' 'b' 3 'xx'
14 'f' 'b' 4 'G5'
15 'f' 'b' 5 'D3'
16 'f' 'b' 6 'B6'
17 'f' 'b' 7 'Q14'
18 'f' 'b' 8 'A3'
19 'm' 'a' 0 'A1'
20 'm' 'a' 1 'A2'
21 'm' 'a' 2 'B1'
21 'm' 'a' 3 'xx'
23 'm' 'a' 4 'B5'
24 'm' 'a' 5 'A3'
25 'm' 'a' 6 'B6'
26 'm' 'a' 7 'B15'
27 'm' 'a' 8 'A3'
28 'm' 'a' 9 'A1'
29 'm' 'b' 2 'V1'
30 'm' 'b' 3 'xx'
31 'm' 'b' 4 'R5'
32 'm' 'b' 5 'B3'
33 'm' 'b' 6 'W6'
34 'm' 'b' 7 'Q12'
Как видно, каждая строка для age==3
имеет значение xx
.
Я хочу, чтобы это значение было заменено значением возраста 7 в каждой группе гендерного типа.
То есть:
Index Gender Type Age Value
0 'f' 'a' 0 'A1'
1 'f' 'a' 1 'A2'
2 'f' 'a' 2 'B1'
3 'f' 'a' 3 'Q10'
4 'f' 'a' 4 'B5'
5 'f' 'a' 5 'F3'
6 'f' 'a' 6 'B6'
7 'f' 'a' 7 'Q10'
8 'f' 'a' 8 'A3'
9 'f' 'a' 9 'A1'
10 'f' 'b' 0 'D1'
11 'f' 'b' 1 'V2'
12 'f' 'b' 2 'V1'
13 'f' 'b' 3 'Q14'
14 'f' 'b' 4 'G5'
15 'f' 'b' 5 'D3'
16 'f' 'b' 6 'B6'
17 'f' 'b' 7 'Q14'
18 'f' 'b' 8 'A3'
19 'm' 'a' 0 'A1'
20 'm' 'a' 1 'A2'
21 'm' 'a' 2 'B1'
21 'm' 'a' 3 'B15'
23 'm' 'a' 4 'B5'
24 'm' 'a' 5 'A3'
25 'm' 'a' 6 'B6'
26 'm' 'a' 7 'B15'
27 'm' 'a' 8 'A3'
28 'm' 'a' 9 'A1'
29 'm' 'b' 2 'V1'
30 'm' 'b' 3 'Q12'
31 'm' 'b' 4 'R5'
32 'm' 'b' 5 'B3'
33 'm' 'b' 6 'W6'
34 'm' 'b' 7 'Q12'
Обратите внимание, что фрейм данных не сбалансирован в том смысле, что диапазон возрастов в каждой группе гендерного типа не одинаков. Он не начинается и не заканчивается в одном и том же возрасте, так как возраст 3 - это не тот же показатель в каждой группе, я не могу использовать iloc
, а скорее loc
в некотором роде.
Заранее спасибо за помощь.