首頁 > 後端開發 > Python教學 > 如何將 Pandas DataFrame 轉換為不同方向的字典?

如何將 Pandas DataFrame 轉換為不同方向的字典?

Linda Hamilton
發布: 2024-12-06 03:57:12
原創
1035 人瀏覽過

How to Convert a Pandas DataFrame to a Dictionary with Different Orientations?

將 Pandas DataFrame 轉換為字典

要將 Pandas DataFrame 轉換為字典,請使用 to_dict() 方法。預設情況下,此方法使用 DataFrame 的列名作為字典鍵,並為每個列建立索引:資料對的字典。

df.to_dict()
登入後複製

自訂字典輸出

取得以下清單每列的值而不是索引:資料對的字典,請使用 orient 參數。以下是可用的方向:

  • dict:預設方向(列名稱作為鍵,索引:資料對作為值)
  • 列表列表
  • :鍵是列名,值是列列表data
  • series
  • :鍵是列名稱,值是包含資料的 Series物件
  • split
  • :將列/資料/索引分割為單獨的鍵
  • 記錄
  • :每一行成為一個字典,以列名作為鍵和資料值作為值
  • 索引
  • :與「記錄」類似,但鍵是索引標籤而不是列表

範例

考慮以下內容DataFrame:
df = pd.DataFrame({'ID': ['p', 'q', 'r'], 'A': [1, 4, 4], 'B': [3, 3, 0], 'C': [2, 2, 9]})
登入後複製

將此DataFrame轉換為「ID」為的字典鍵和其他列的值作為列表,使用以下程式碼:
df.set_index('ID').T.to_dict('list')
登入後複製

這將傳回以下字典:
{'p': [1, 3, 2], 'q': [4, 3, 2], 'r': [4, 0, 9]}
登入後複製

其他方向

這裡是不同的例子方向:

dict

df.to_dict('dict')
登入後複製

輸出:
{'ID': {'p': 'p', 'q': 'q', 'r': 'r'},
 'A': {0: 1, 1: 4, 2: 4},
 'B': {0: 3, 1: 3, 2: 0},
 'C': {0: 2, 1: 2, 2: 9}}
登入後複製

l ist

:
df.to_dict('list')
登入後複製

輸出:
{'ID': ['p', 'q', 'r'], 'A': [1, 4, 4], 'B': [3, 3, 0], 'C': [2, 2, 9]}
登入後複製

系列

:
df.to_dict('series')
登入後複製

輸出:
{'ID': 0    p
 1    q
 2    r
 Name: ID, dtype: object,
 'A': 0    1
 1    4
 2    4
 Name: A, dtype: int64,
 'B': 0    3
 1    3
 2    0
 Name: B, dtype: int64,
 'C': 0    2
 1    2
 2    9
 Name: C, dtype: int64}
登入後複製

分割

:
df.to_dict('split')
登入後複製

輸出:
{'columns': ['ID', 'A', 'B', 'C'], 'data': [['p', 1, 3, 2], ['q', 4, 3, 2], ['r', 4, 0, 9]], 'index': [0, 1, 2]}
登入後複製

記錄

df.to_dict('records')
登入後複製

記錄
[{'ID': 'p', 'A': 1, 'B': 3, 'C': 2}, {'ID': 'q', 'A': 4, 'B': 3, 'C': 2}, {'ID': 'r', 'A': 4, 'B': 0, 'C': 9}]
登入後複製
:

輸出:

df.to_dict('index')
登入後複製

索引
{0: {'ID': 'p', 'A': 1, 'B': 3, 'C': 2},
 1: {'ID': 'q', 'A': 4, 'B': 3, 'C': 2},
 2: {'ID': 'r', 'A': 4, 'B': 0, 'C': 9}}
登入後複製
:輸出:

以上是如何將 Pandas DataFrame 轉換為不同方向的字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板