python - 从 panda 系列创建具有多个值的字典

标签 python python-3.x pandas dictionary

我有一个 pd 数据框,如下:

df=pd.DataFrame([['A',1],['A',3],['B',2],['B',5],['C',8]],columns=['k','v'])

我想创建以下字典:

{'A':[1,3],
 'B':[2,5],
 'C':[8]
}

我目前正在这样做:

from collections import defaultdict


my_dict=defaultdict(list)

for key in df.k:
    my_dict[key].append(df['v'][df['k']==key])

但是对于大 df 来说效率不高(非常耗时),并且还会向我发送回值的索引,这是我不想要的。

有什么建议吗?

谢谢

最佳答案

您可以在此处使用agg:

df.groupby('k').v.agg(list).to_dict()

{'A': [1, 3], 'B': [2, 5], 'C': [8]}

关于python - 从 panda 系列创建具有多个值的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52500666/

相关文章:

python-3.x - 为 "Sun, 17 Dec 2017 14:26:07 GMT"设置日期格式

Python 创建一个包含打乱元素并按对象引用的子列表

python - 将 pandas 数据框中的所有行除以特定行

python - 使用前一行计算当前行的总和

python - 升级python包时是否需要停止所有python脚本?

python - 有没有办法使用 Python 在 SQLite 中正确排序 unicode 字符串?

python - 使用 python 更改和运行 SQL 查询

python-3.x - struct.error : unpack requires a buffer of 4 bytes

python - 删除 csv 文件中正在使用的行

r - 'statsmodels' 或其他 Python 包是否提供等效于 R 的 'step' 函数?