我有一个巨大的 Pandas 数据框,其结构如下所示:
import pandas as pd
df = pd.DataFrame({'col1': ['A', 'A', 'B', 'C', 'C', 'C'], 'col2': [1, 2, 5, 2, 4, 6]})
df
col1 col2
0 A 1
1 A 2
2 B 5
3 C 2
4 C 4
5 C 6
任务是构建一个字典,其中 col1
中的元素作为键,col2
中的相应元素作为值。对于上面的示例,输出应为:
A -> [1, 2]
B -> [5]
C -> [2, 4, 6]
虽然我写了一个解决方案
from collections import defaultdict
dd = defaultdict(set)
for row in df.itertuples():
dd[row.col1].append(row.col2)
我想知道是否有人知道使用内置 pandas 函数的更“Python 原生”的解决方案。
最佳答案
没有apply
,我们通过for循环来实现
{x : y.tolist() for x , y in df.col2.groupby(df.col1)}
{'A': [1, 2], 'B': [5], 'C': [2, 4, 6]}
关于python - 如何将 Pandas 数据框转换为具有列表中值的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59592011/