我有一个整数列表(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])
答案 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])