首页 > 后端开发 > Python教程 > 如何在 Python 中按列对 DataFrame 进行分组并将其转换为列表字典?

如何在 Python 中按列对 DataFrame 进行分组并将其转换为列表字典?

Barbara Streisand
发布: 2024-10-29 10:34:02
原创
197 人浏览过

How to Group a DataFrame by a Column and Convert It to a Dictionary of Lists in Python?

GroupBy 并将 DataFrame 转换为列表字典

给定一个包含结构化数据的 Excel 文件,目标是提取数据,对其进行分组按特定列,并将其存储在 Python 字典中,并以列表作为值。 Excel表格中的数据格式为:

Column1 Column2 Column3
0 23 1
1 5 2
1 2 3
1 19 5
2 56 1
2 22 2
3 2 4
3 14 5
4 59 1
5 44 1
5 1 2
5 87 3

解决方案1:groupby.apply().to_dict()

将数据转换为想要的字典格式,请按照以下步骤操作:

  1. 使用 pandas.read_excel() 将 Excel 文件读入 DataFrame。
  2. 使用 groupby() 按 Column1 对 DataFrame 进行分组。
  3. 从Column3中提取值并将列表应用于每个组以将它们转换为列表。
  4. 使用to_dict()将分组结果转换为字典。
<code class="python">import pandas as pd

excel = pd.read_excel(r"e:\test_data.xlsx", sheetname='mySheet', parse_cols='A,C')
result = excel.groupby('Column1')['Column3'].apply(list).to_dict()

print(result)</code>
登录后复制

解决方案 2:字典理解

或者,您可以使用字典理解来实现相同的结果:

<code class="python">result = {k: list(v) for k, v in excel.groupby('Column1')['Column3']}

print(result)</code>
登录后复制

两种解决方案的输出均为:

{0: [1], 1: [2, 3, 5], 2: [1, 2], 3: [4, 5], 4: [1], 5: [1, 2, 3]}
登录后复制

以上是如何在 Python 中按列对 DataFrame 进行分组并将其转换为列表字典?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板