У меня есть df с двумя столбцами number
, type
. Я пытаюсь удалить числа в нечетной позиции, если type
равно change
и условие равно odd
.
И аналогично числа в четной позиции, если type
равно change
и условие even
.
Для номера - (7,14,21,28)
без цифр в odd
позиции - 7,21
.
Аналогично - (3,6,5,8)
без цифр в even
позиции - 6,8
df
df= pd.DataFrame(data = {'number' : ['7,14,21,28', '2,5', '3,6,5,8 ', '4', '3,10,17,24,31'], 'type' : ['change', 'dont_change', 'change', 'dont_change', 'change'], 'condition':['odd','even','even','odd','odd']})
number type condition
0 7,14,21,28 change odd
1 2,5 dont_change even
2 3,6,5,8 change even
3 4 dont_change odd
4 3,10,17,24,31 change odd
Мой исключенный вывод:
number type condition
0 7,21 change odd
1 2,5 dont_change even
2 6,8 change even
3 4 dont_change odd
4 3,17,31 change odd
То, что я пробовал:
У меня есть два разных кода для четного и нечетного. Without adding type - condition - change/dont_change
string slicing with step = 2
even
df.number = np.where(df['condition'].eq('odd'), df.number.str.split(',').str[1::2].str.join(','), df['number'])
odd
df.number = np.where(df['condition'].eq('odd'), df.number.str.split(',').str[::2].str.join(','), df['number'])
Как мне исходить из этого?