gpt4 book ai didi

python - 将字典值映射到 Pandas 数据框列

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:14 25 4
gpt4 key购买 nike

我有这本字典:

 j =  {1: {'help': 2},
2: {'chocolate': 1, 'help': 1},
3: {'chocolate': 1, 'help': 1}}

和这个数据框:

df = pd.DataFrame({'docId': [1, 2, 3, 1, 2, 3, ],
'sent': ['help', 'chocolate', 'chocolate', 'help', 'help', 'help']})

我想根据 docId 和 term 匹配值,因此它应该如下所示:

docId  sent        freq
1 help 2
2 chocolate 1
3 chocolate 1
1 help 2
2 help 1
3 help 1

我不确定如何完成此操作,我一直在使用 map 和 apply 但我没有得到任何结果。

最佳答案

重新制作你的字典

使用元组作为键,您可以映射压缩列上的get方法

J = {(x, y): v for x, V in j.items() for y, v in V.items()}

df.assign(freq=[*map(J.get, zip(df.docId, df.sent))])


docId sent freq
0 1 help 2
1 2 chocolate 1
2 3 chocolate 1
3 1 help 2
4 2 help 1
5 3 help 1

或者不

您可以在 map 中使用 lambda,它接受两个参数并传递提供参数的迭代器。

df.assign(freq=[*map(lambda x, y: j[x][y], df.docId, df.sent)])

docId sent freq
0 1 help 2
1 2 chocolate 1
2 3 chocolate 1
3 1 help 2
4 2 help 1
5 3 help 1

关于python - 将字典值映射到 Pandas 数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54894928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com