Я пытаюсь объединить несколько столбцов в Python. Столбцы для объединения различаются в зависимости от значений некоторых других столбцов. Как вы можете сделать это эффективно?
Я уже пытался создать ключ, который группирует поля условий и объединяет его с циклом for, который проверяет каждую строку, находится ли она в определенной группе. Конечно, это займет очень много времени.
Например, учитывая кадр данных (df):
df = pd.DataFrame({'cond_1': ['A', 'B', 'B', 'C', 'D'],
'cond_2': ['one', 'two', 'three', 'three', 'four'],
'concat_1': ['Mon', 'Tue', 'Fri', 'Wed', 'Thu'],
'concat_2': ['Sep', 'Oct', 'Oct', 'Nov', 'Dec'],
'concat_3': ['first', 'second', 'second', 'third', 'fourth']})
У меня есть следующий набор правил:
- если cond_1 = 'A', то concat_1 + concat_2
- если cond_1 = 'B', то если cond_2 = 'two', то concat_1 + concat_3, иначе concat_1 + concat_2
- если cond_1 в ('C', 'D'), то concat_2 + concat_3
, что должно привести к следующему:
cond_1 | cond_2 | concat_1 | concat_2 | concat_3 | result
---------------------------------------------------------
A | one | Mon | Sep | first | MonSep
B | two | Tue | Oct | second | Tuesecond
B | three | Fri | Oct | second | FriOct
C | three | Wed | Nov | third | Novthird
D | four | Thu | Dec | fourth | Decfourth
Спасибо за вашу помощь!