首页 >后端开发 >Python教程 >如何将 Pandas DataFrame 转换为不同方向的字典?

如何将 Pandas DataFrame 转换为不同方向的字典?

Linda Hamilton
Linda Hamilton原创
2024-12-06 03:57:121066浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn