【问题标题】:Return a Matching Element from a List in a Pandas Data Frame从 Pandas 数据框中的列表中返回匹配元素
【发布时间】:2020-09-15 20:49:18
【问题描述】:

我有一个整数列表 (gtin) 和一个 pandas 数据框 (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])

【问题讨论】:

    标签: python pandas


    【解决方案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])
    

    【讨论】:

      猜你喜欢
      • 2020-04-28
      • 1970-01-01
      • 2018-11-08
      • 2019-01-22
      • 2020-05-03
      • 1970-01-01
      • 2020-09-30
      • 1970-01-01
      • 2021-11-30
      相关资源
      最近更新 更多