映射两个数据帧以创建包含多个值的字典

2024-06-18 05:31:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个dictionary,它将为一个键提供多个值。在

我有如下的数据帧df1,如下所示:

    ID       SUM       COUNT
2   3002    256401.0    15
1   3021    5412.49     21
4   3022    45454.12    12
3   3025    15487.23    45
5   3026    154876.1    88

我想把ID映射到大的查找表,为每个ID获取多个值

^{pr2}$

现在,我想按ID映射这两个数据帧,并创建一个字典,它具有唯一的ID和来自df2var1var2var3列中的多个值

{3021: ['Cfd45', 'shkjs', 'sfs', 'jkdg', 'fjslk', 'hjfks', 'shka', 'fsad'],
3022: ['skank', 'vssf', 'sdkj', vbjajl', 'bbf'],
3025: ...}

值可以在列表或元组中。在

对于我的场景,我能找到的最接近的就是这个post。但是,当我映射到表时,我需要多个列中的值。我该怎么办?任何想法都将不胜感激。在


Tags: 数据iddictionary字典countdf1sumdf2
1条回答
网友
1楼 · 发布于 2024-06-18 05:31:23

让我们在df2上试试这个:

df2.set_index('ID')[['Var1','Var2','Var3']].stack().groupby(level=0).apply(lambda x: x.unique()).to_dict()

输出:

^{pr2}$

或者

df2.set_index('ID')[['Var1','Var2','Var3']].stack().groupby(level=0).apply(lambda x: x.unique()).to_json()

输出:

'{"3021":["Cfd45","shkjs","sfs","None","fjslk","hjfks","shka","fsad"],"3022":["None","skank","vssf","sdkj","vbjajl","bbf"],"3025":["klgf","vcbj","jgjg"],"3026":["tuo","None","gdsfs","klo","ahk","nbjd","alkdjl","sfsfs"]}'

相关问题 更多 >