У меня есть фрейм данных, который может быть сгенерирован из кода, приведенного ниже
df = pd.DataFrame({'person_id' :[1,2,3],'date1':
['12/31/2007','11/25/2009','10/06/2005'],'val1':
[2,4,6],'date2': ['12/31/2017','11/25/2019','10/06/2015'],'val2':[1,3,5],'date3':
['12/31/2027','11/25/2029','10/06/2025'],'val3':[7,9,11]})
Я следовал приведенному ниже решению, чтобы преобразовать его из широкого в длинный
pd.wide_to_long(df, stubnames=['date', 'val'], i='person_id',
j='grp').sort_index(level=0)
Хотя это работает с примерами данных, как показано ниже, это не работает с моими реальными данными, которые имеют более 200 столбцов. Вместо person_id мои реальные данные имеют subject_ID, который представляет собой значения типа DC0001, DC0002 и т. Д. Всегда ли «I» должно быть числовым? Вместо этого он добавляет значения заглушки как новые столбцы в моем наборе данных и имеет нулевые строки
Вот так выглядят мои настоящие колонки
![enter image description here](https://i.stack.imgur.com/AuJTb.png)
Мои реальные данные также могут содержать NA. Так нужно ли мне заполнять их значениями по умолчанию для работы wide_to_long?
![enter image description here](https://i.stack.imgur.com/2EwQM.png)
Не могли бы вы помочь, в чем может быть проблема? Или любой другой подход для достижения того же результата также полезен.