gpt4 book ai didi

python - 使用字典转换 pandas 系列中列表的元素

转载 作者:太空狗 更新时间:2023-10-29 21:35:52 26 4
gpt4 key购买 nike

我有以下 Pandas 数据框:

1    ["Apple", "Banana"]
2 ["Kiwi"]
3 None
4 ["Apple"]
5 ["Banana", "Kiwi"]

和下面的字典:

{1: ["Apple", "Banana"],
2: ["Kiwi"]}

我现在想使用字典将列表中的所有条目映射到我的数据框中。结果应该是这样的:

1    [1]
2 [2]
3 None
4 [1]
5 [1, 2]

如何最有效地做到这一点?

最佳答案

方法一我正在使用 unnesting

d={z :  x for x , y in d.items() for z in y }
s=unnesting(s.to_frame().dropna(),[0])[0]\
.map(d).groupby(level=0).apply(set).reindex(s.index)
Out[260]:
0 {1}
1 {2}
2 NaN
3 {1}
4 {1, 2}
Name: 0, dtype: object

方法二循环

[set(d.get(y) for y in x) if  x is not None  else None for x in s ]
#s=[set(d.get(y) for y in x) if x is not None else None for x in s ]

Out[265]: [{1}, {2}, None, {1}, {1, 2}]

数据输入

s=pd.Series([["Apple", "Banana"],["Kiwi"],None,["Apple"],["Banana", "Kiwi"]])
d={1: ["Apple", "Banana"],
2: ["Kiwi"]}

关于python - 使用字典转换 pandas 系列中列表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56599572/

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