Python 检查数据帧中的ID是否存在于另一个数据帧中的最快方法

Python 检查数据帧中的ID是否存在于另一个数据帧中的最快方法,python,pandas,Python,Pandas,我有大熊猫数据帧(大约一百万行)和id-s列表(数组长度为100000)。对于df1中的每个id,我必须检查该id是否在我的列表中(称为special),并相应地标记它: df['Segment'] = df['ID'].apply(lambda x: 1 if x in special else np.nan) 问题是,这是非常缓慢的,因为对于百万id-s lambda表达式,检查该id是否在100000个条目的列表中。有没有更快的方法来实现这一点?我建议您看看 用于: 我们还可以使用: 或

我有大熊猫数据帧(大约一百万行)和id-s列表(数组长度为100000)。对于df1中的每个id,我必须检查该id是否在我的列表中(称为
special
),并相应地标记它:

df['Segment'] = df['ID'].apply(lambda x: 1 if x in special else np.nan)
问题是,这是非常缓慢的,因为对于百万id-s lambda表达式,检查该id是否在100000个条目的列表中。有没有更快的方法来实现这一点?

我建议您看看

用于:

我们还可以使用:

我建议你看看

用于:

我们还可以使用:

 df['Segment'] = df['ID'].isin(special).astype(int)
df['Segment'] = df['ID'].isin(special).view('uint8')
df['Segment'] = np.where(df['ID'].isin(special),1 ,0)