首页 >后端开发 >Python教程 >如何将 Pandas DataFrame 转换为具有列表值的字典?

如何将 Pandas DataFrame 转换为具有列表值的字典?

Susan Sarandon
Susan Sarandon原创
2024-12-14 08:44:10326浏览

How to Convert a Pandas DataFrame to a Dictionary with List Values?

将 Pandas DataFrame 转换为字典

在许多数据操作任务中,需要将 Pandas DataFrame 中的数据提取为方便的格式。一个常见的需求是将 DataFrame 转换为 Python 字典,其中第一列的元素成为键,同一行中其他列的元素成为值。

示例

考虑以下 DataFrame:

    ID   A   B   C
0   p    1   3   2
1   q    4   3   2
2   r    4   0   9

我们希望将此 DataFrame 转换为以下内容的字典形式:

{'p': [1,3,2], 'q': [4,3,2], 'r': [4,0,9]}

解决方案

为了实现这一点,我们可以利用 Pandas 提供的 to_dict() 方法。但是,为了将 DataFrame 对齐为所需的格式,我们需要将“ID”列设置为索引并使用 .T 转置 DataFrame。此外,我们在 to_dict() 中指定 orient 参数来输出每列的值列表。

以下代码演示了这种方法:

df.set_index('ID').T.to_dict('list')

这将生成所需的字典:

{'p': [1, 3, 2], 'q': [4, 3, 2], 'r': [4, 0, 9]}

替代选项

除了默认的字典格式之外,Pandas 还提供了一系列使用 orient 参数输出字典的选项:

  • dict: 列名作为键,值作为索引的字典:数据对
  • 列表: 键是列名,值是列列表data
  • series: 与 'list' 类似,但值是 Series 对象
  • split: 列名作为键,数据值作为值,和索引标签作为单独的键
  • 记录:每一行都成为一个字典列名作为键,数据作为值
  • index: 与“records”类似,但是字典的字典,索引标签作为键

以上是如何将 Pandas DataFrame 转换为具有列表值的字典?的详细内容。更多信息请关注PHP中文网其他相关文章!

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