如何比较两个数据帧列以查看一列中的值是否在另一列的对象中



我想比较数据帧中的两个不同列(称为station_programming_df(。 我有一个包含整数的数据帧列(称为"facility_id"(。 我有第二个数据帧列,其中包含一个数据帧对象(其中包含一系列整数((称为"parsed_final_participant_val"(。 我想看看第一列中的整数是否在带有数据框对象的列(第二列(中。 如果为 true,我想在新列中返回"1"(即"master_color"(

我尝试了各种方法,包括使用 python 的"isin"函数,它不返回错误,但也不返回正确的数量。 我也尝试转换数据类型,但没有运气。

station_programming_df['master_color']=np.where(station_programming_df['facility_id'].isin(station_programming_df['final_participants_val']),1,0 )

以下是我使用的数据帧的样子:

数据:

facility_id,final_participants_val,master_color
35862,"62469,33894,33749,34847,21656,35396,4624,69571",0
35396,"62469,33894,33749,34847,21656,35396,4624,69571",0

虽然没有返回错误消息,但我找不到任何匹配项。第二行应在master_color列中返回"1"。

我想知道这是否与它如何解释该系列有关(final_participants_val(

任何帮助将不胜感激。

使用DataFrame.apply

station_programming_df['master_color']=station_programming_df.apply(lambda x:  1 if str(x['facility_id']) in x['final_participants_val'] else 0,axis=1)
print(df)

facility_id                          final_participants_val  master_color
0        35862  62469,33894,33749,34847,21656,35396,4624,69571             0
1        35396  62469,33894,33749,34847,21656,35396,4624,69571             1

您可以使用df.applyin

station_programming_df['master_color'] = station_programming_df.apply(lambda x: str(x.facility_id) in x.final_participants_val, axis=1)
facility_id                          final_participants_val  master_color
0        35862  62469,33894,33749,34847,21656,35396,4624,69571         False
1        35396  62469,33894,33749,34847,21656,35396,4624,69571          True

相关内容

  • 没有找到相关文章

最新更新