簡體   English   中英

使用 Pandas 將逐行數據轉換為列

[英]Convert row wise data into columns using Pandas

我已經閱讀了幾個類似的問題及其答案,但我仍然無法執行轉換。
這就是我的示例 dataframe, 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]中的值成為新的列標題,新的 header 列的數據位於舊 dataframe 的同一行中。

預期結果:

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()方法,但我無法按照我的意願塑造數據,我不確定索引值會是什么。 我仍然可以通過將行轉換為列表並從列表中提取標題並創建一個新的 dataframe 來進行此轉換,但我不覺得它非常“pythonic”並且想知道是否有更好的方法可以使用現在和將來的。 任何幫助,將不勝感激。 謝謝。

利用:

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

或者如果列的名稱是 str:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM