Преобразуйте построчные данные в столбцы, используя Pandas - PullRequest
0 голосов
/ 06 октября 2019

Я прочитал несколько похожих вопросов и ответы на них, но все еще не смог выполнить преобразование.
Вот так выглядит мой примерный кадр данных, 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']})

enter image description here

Я хотел бы переформатировать его так, чтобы значения в столбце 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']})

enter image description here

Я изучил .pivot() метод, но не смог сформировать данныекак я хотел с этим, и я не был уверен, каким будет значение индекса. Я все еще могу сделать это преобразование, конвертируя строки в список и извлекая заголовки из списка и создавая новый фрейм данных, но я не чувствую, что он очень «питонический», и мне было интересно, есть ли лучший способ сделать это, который я мог бы использоватьнастоящего и будущего. Любая помощь будет оценена. Спасибо.

1 Ответ

3 голосов
/ 06 октября 2019

Использование:

 df=df.set_index(0).T.reset_index(drop=True) 

или если имя столбца: str:

df=df.set_index('0').T.reset_index(drop=True) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...