У меня есть тестовый dataframe, который выглядит примерно так:Панды разделить имя столбца
data = pd.DataFrame([[0,0,0,3,6,5,6,1],[1,1,1,3,4,5,2,0],[2,1,0,3,6,5,6,1],[3,0,0,2,9,4,2,1]], columns=["id", "sex", "split", "group0Low", "group0High", "group1Low", "group1High", "trim"])
grouped = data.groupby(['sex','split']).mean()
stacked = grouped.stack().reset_index(level=2)
stacked.columns = ['group_level', 'mean']
Далее, я хочу, чтобы отделить group_level и укладывают эти 2 новые факторы:
stacked['group'] = stacked.group_level.str[:6]
stacked['level'] = stacked.group_level.str[6:]
Это все работы хорошо. Мой вопрос таков:
Это работает, если имена моих столбцов («group0Low», «group0High», «group1Low», «group1High») имеют нечто общее между собой.
Что делать, если вместо этого имена столбцов больше напоминают «routeLow», «routeHigh», «landmarkLow», «landmarkHigh»? Как использовать str для разделения group_level в этом случае?
Этот вопрос похож на этот публикуемую здесь: Slice/split string Series at various positions
Разница есть все мои subnames колонки отличаются и не имеют никакой общности (в то время как в другой пост все было группы или класса в названии). Есть ли строка регулярных выражений или какой-либо другой метод, который я могу использовать для этой укладки?
спасибо за идею. Я адаптировал его, используя str.contains(), и теперь все работает очень хорошо! – Simon