Я пытаюсь добавить новый столбец в фрейм данных, основанный на групповом элементе исходного фрейма данных, и назначаю одно из трех значений на основе результатов этой группы
, т. Е. В df ниже I хочу добавить четвертый столбец, чтобы показать, слишком много у меня "А", слишком много "C" или просто нужное количество.
col1 col2 col3
0 1111 A 1
1 1111 B 3
2 1111 B 3
3 1111 B 3
4 1111 C 1
5 2222 A 1
6 2222 B 1
7 2222 C 2
8 2222 C 2
9 3333 A 2
10 3333 A 2
11 3333 B 1
12 3333 C 1
становится ...
col1 col2 col3 col4
0 1111 A 1 OK
1 1111 B 3 OK
2 1111 B 3 OK
3 1111 B 3 OK
4 1111 C 1 OK
5 2222 A 1 >C
6 2222 B 1 >C
7 2222 C 2 >C
8 2222 C 2 >C
9 3333 A 2 >A
10 3333 A 2 >A
11 3333 B 1 >A
12 3333 C 1 >A
Я думал об использовании преобразования, но это возвращает серию, и я думаю, что в этом случае мне нужно проверить два разных столбца?
Пример:
d1 = {'col1': ['1111', '1111', '1111', '1111', '1111', '2222', '2222', '2222', '2222', '3333', '3333', '3333', '3333'],
'col2': ['A', 'B', 'B', 'B', 'C', 'A', 'B', 'C', 'C', 'A', 'A', 'B', 'C'],
'col3': [1, 3, 3, 3, 1, 1, 1, 2, 2, 2, 2, 1, 1]}
df1 = pd.DataFrame(data=d1)
d2 = {'col1': ['1111', '1111', '1111', '1111', '1111', '2222', '2222', '2222', '2222', '3333', '3333', '3333', '3333'],
'col2': ['A', 'B', 'B', 'B', 'C', 'A', 'B', 'C', 'C', 'A', 'A', 'B', 'C'],
'col3': [1, 3, 3, 3, 1, 1, 1, 2, 2, 2, 2, 1, 1],
'col4': ['OK', 'OK', 'OK', 'OK', 'OK', '>C', '>C', '>C', '>C', '>A', '>A', '>A', '>A']}
df2 = pd.DataFrame(data=d2)
print(df1)
print(df2)