Я прочитал несколько похожих вопросов и ответы на них, но все еще не смог выполнить преобразование.
Вот так выглядит мой примерный кадр данных, df
:
pd.DataFrame({0: ['Destiantion', 'Switch Location', 'Driver', 'Company'],
1: ['CALGARY', np.nan, 'BALJIT', 'SUPERIOR'],
2: ['CALGARY', np.nan, 'ROBERT', 'APPS'],
3: ['CALGARY', np.nan, 'MARIUS', 'APPS'],
4: ['DELTA', np.nan, np.nan, 'ATC']})
Я хотел бы переформатировать его так, чтобы значения в столбце 0, df[0]
становились новыми заголовками столбцов, а данные для новых столбцов заголовков находились в той же строке встарый кадр данных.
Ожидаемый результат:
pd.DataFrame({'Destiantion': ['CALGARY', 'CALGARY', 'CALGARY', 'DELTA'],
'Switch Location': [np.nan, np.nan, np.nan, np.nan],
'Driver': ['BALJIT', 'ROBERT', 'MARIUS', np.nan],
'Company': ['SUPERIOR', 'APPS', 'APPS', 'ATC']})
Я изучил .pivot()
метод, но не смог сформировать данныекак я хотел с этим, и я не был уверен, каким будет значение индекса. Я все еще могу сделать это преобразование, конвертируя строки в список и извлекая заголовки из списка и создавая новый фрейм данных, но я не чувствую, что он очень «питонический», и мне было интересно, есть ли лучший способ сделать это, который я мог бы использоватьнастоящего и будущего. Любая помощь будет оценена. Спасибо.