从熊猫数据框中的列表中返回匹配元素

时间:2020-09-15 20:49:18

标签: python pandas

我有一个整数列表(gtin)和一个熊猫数据帧(df),其中每一列都包含一个列表(df ['gtins'])

我想在数据框架(df ['gtin_match'])中定义一个新列,该列将数据框架列表中的第一个匹配元素返回到独立列表。

我尝试将下面的代码与apply函数和lambda函数一起使用,但是它在df ['gtins']中返回列表的列表。

我该如何解决?

gtin = [1234, 456, 2005, 91]

df['gtin_match'] = df['gtins'].apply(lambda x: [x for i in range(0, len(x)) if int(x[i]) in gtin])

enter image description here

1 个答案:

答案 0 :(得分:1)

在理解中,您应该返回x[i],因为x本身就是列表对象,而您只想返回int:

df['gtin_match'] = df['gtins'].apply(lambda x: [x[i] for i in range(0, len(x)) if int(x[i]) in gtin])