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()
将数据转换为想要的字典格式,请按照以下步骤操作:
<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中文网其他相关文章!