gpt4 book ai didi

python - 将嵌套列表与数据框匹配

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

我有一个嵌套列表,如下所示,

[['a'], ['b'], [], ['d', 'a'], ['c', 'd', 'a']]

我还有一个数据框,它用一个值映射字母,即

  col1  value
0 a 2
1 b 5
2 c 4
3 d 9

我的目标是将列表中的字母与数据框进行匹配,并返回相应的值。如果有超过 1 个字母,我需要它们值的总和。我的预期结果是如下所示的平面列表,

[2, 5, 0, 11, 15]

我试着做一个 for 循环,但无法让它工作。

for i in l1:
if len(i) == 0:
print(0)
elif len(i) > 1:
for j in i:
print(d1[d1['col1'] == j]['value'])
else:
print(d1[d1['col1'] == i]['value'])

另外,效率是关键,因为数据集很大

数据

l1 = [['a'], ['b'], [], ['d', 'a'], ['c', 'd', 'a']]
d1 = pd.DataFrame({'col1':['a', 'b', 'c', 'd'], 'value':[2, 5, 4, 9]})

类(class)详情

print(sys.version)
3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)]

最佳答案

带有 isin 的 IIUC for 循环

[d1.loc[d1.col1.isin(x),'value'].sum()for x in l1]
Out[883]: [2, 5, 0, 11, 15]

关于python - 将嵌套列表与数据框匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55066712/

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