Pandas数据帧:列表中一列的值是否嵌套在另一列、同一行中



我正在使用类似于的Pandas数据帧

My_date      Something_else    My_list
0    25/10/2019   ...               [25/10/2019, 26/10/2019]
1    03/07/2019   ...               [28/11/2017, 12/12/2017, 26/12/2017]
2    09/04/2019   ...               [11/06/2015]

我想检查名为">My_ date";在同一行、同一列的列表中My_list";。例如,在这里,我想获得以下输出,矢量非常有效

Result
0    true
1    false
2    false

我可以使用">for"循环来实现这一点,例如,这里描述了各种方法。然而,我知道迭代很少是最好的解决方案,尤其是因为我的表有100多万行,并且列表中的许多都有365个值。(但如上所示,这些列表并不总是日期范围。(

我知道有很多方法可以在DataFrames上进行矢量计算,使用loc或<例如em>eval。重点是,在我的情况下,由于这些嵌套列表,没有什么能像预期的那样工作。。。因此,我想找到一个矢量化的解决方案来实现这一点。如果重要的话,我所有的">日期";属于CCD_ 1类型。

可能还有其他问题与类似的问题有关,但我没有用自己的话找到任何合适的答案或问题。

尝试:

df['Result'] = df.apply(lambda x: x['My_date'] in x['My_list'], axis=1)

df=pd.DataFrame({'My_date' : ['25/10/2019','03/07/2019','09/04/2019'], 'My_list' : [['25/10/2019', '26/10/2019'],['28/11/2017', '12/12/2017', '26/12/2017'],['11/06/2015']]})
df['Result'] = df.apply(lambda x: x['My_date'] in x['My_list'], axis=1)

输出:

My_date                               My_list  Result
0  25/10/2019              [25/10/2019, 26/10/2019]   True
1  03/07/2019  [28/11/2017, 12/12/2017, 26/12/2017]  False
2  09/04/2019                          [11/06/2015]  False

相关内容

  • 没有找到相关文章

最新更新