Numpy isin() 未返回预期结果

ah2*_*ise 0 python numpy pandas

根据下面的代码,我希望“duplicate”列的第一个元素返回“True”,因为它存在于“df_set”中。这是针对更大的数据集,因此使用转换为集合......

我做错了什么导致“重复”的第一个元素返回“False”?

import numpy as np
import pandas as pd

data = [
    ['tom', 'juli'],
    ['nick', 'heather'],
    ['juli', 'john'],
    ['dustin', 'tracy']
]
columns = ['Name', 'Name2']

df = pd.DataFrame(data, columns = columns)
df_set = set(df['Name'])
df['duplicate'] = np.isin(df['Name2'], df_set, assume_unique=True)
print(df)
Run Code Online (Sandbox Code Playgroud)

输出:

     Name    Name2  duplicate
0     tom     juli      False
1    nick  heather      False
2    juli     john      False
3  dustin    tracy      False
Run Code Online (Sandbox Code Playgroud)

小智 5

numpy 似乎不喜欢集合,因此您应该将集合转换回列表:

df['duplicate'] = np.isin(df['Name2'], list(df_set), assume_unique=True)
Run Code Online (Sandbox Code Playgroud)

输出:

>>> df
     Name    Name2  duplicate
0     tom     juli       True
1    nick  heather      False
2    juli     john      False
3  dustin    tracy      False
Run Code Online (Sandbox Code Playgroud)