Я хотел бы преобразовать один столбец данных в несколько столбцов в кадре данных на основе определенных значений / условий.
Найдите код для создания входного кадра данных
df1 = pd.DataFrame({'VARIABLE':['studyid',1,'age_interview', 65,'Gender','1.Male',
'2.Female',
'Ethnicity','1.Chinese','2.Indian','3.Malay']})
Данныевыглядит так, как показано ниже
![enter image description here](https://i.stack.imgur.com/v5ht4.png)
Обратите внимание, что я не знаю заранее названия столбцов.Но обычно это следует за этим форматом.То, что я показал выше, представляет собой пример данных, и реальные данные могут иметь около 600-700 столбцов и данные, упорядоченные таким образом
Что я хотел бы сделать, это преобразовать значения, которые начинаются с нецифров (символов), какновые столбцы в датафрейме.Это может быть новый фрейм данных.
Я попытался записать цикл for, но не смог из-за ошибки ниже.Не могли бы вы помочь мне достичь этого результата.
for i in range(3,len(df1)):
#str(df1['VARIABLE'][i].contains('^\d'))
if (df1['VARIABLE'][i].astype(str).contains('^\d') == True):
В вышеупомянутом цикле я пытался проверить, является ли первый символ цифрой, если да, а затем сохранить его как значение (например, 1,2, 3 и т. Д.) И если это персонаж (например, пол, этническая принадлежность и т. Д.), Создайте новый столбец.Но угадайте, что это неправильный и длительный подход
Например, в приведенном выше примере столбцы будут Studyid, age_interview, Gender, Ethnicity.
Окончательный результат будет выглядеть следующим образом
![enter image description here](https://i.stack.imgur.com/9lQsq.png)
Не могли бы вы сообщить мне, если есть элегантный подход к этому?