Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有关isin()准确性的一些问题_Python_Pandas - Fatal编程技术网

Python 有关isin()准确性的一些问题

Python 有关isin()准确性的一些问题,python,pandas,Python,Pandas,我对isin()函数的准确性有一些问题 在我的DataFrame中,我有许多id,还有abc: df = DataFrame[DataFrame['id'].isin(IDs)] 但结果是: print('abc' in df['id']) >> False 结果是: print('abc' in df['id'].unique()) >> True 如果将中的与系列一起用于测试索引中的成员资格,则会出现问题 因此,如果由其创建的test numpy数组按预期工作

我对
isin()
函数的准确性有一些问题

在我的
DataFrame
中,我有许多
id
,还有
abc

df = DataFrame[DataFrame['id'].isin(IDs)]
但结果是:

print('abc' in df['id']) 
>> False
结果是:

print('abc' in df['id'].unique())
>> True

如果将中的与系列一起用于测试索引中的成员资格,则会出现问题

因此,如果由其创建的test numpy数组按预期工作:

print(type(df['id'].values))
<class 'numpy.ndarray'>

print('abc' in df['id'].values)
True
编辑:如果使用它,则返回numpy数组:

print(df['id'].unique())
['abc' 'sdf' 'ert']

print(type(df['id'].unique()))
<class 'numpy.ndarray'>

print('abc' in df['id'].unique())
True
print(df['id'].unique())
['abc''sdf''ert']
打印(类型(df['id'].unique())
打印('abc'在df['id'].unique()中)
真的

您能添加一些数据样本吗?由于安全原因,我无法上传自己的数据,但我会尝试将样本ID制作成列表或系列?如果它是一个系列,那么in语句将根据该系列的索引值进行计算,这就是您的问题。然后,您的下一个语句将根据此容器的值进行求值**编辑:*事实上,这在@jezrael answer中得到了解释,我现在对其进行了投票,虽然我的猜测是问题在于IDs是熊猫系列而不是列表。是的,但我的主要问题仍然没有解决,是关于isin()函数的。谢谢你的回答,但是为什么结果
print('abc'在df['id'])。value)
在我的问题中是正确的?在我做过的过滤之后done@Amir.S-您认为df['id'].unique()是否
?因为它返回numpy数组,而不是
Series
@Amir.S-我刚刚阅读了下面的评论,您的问题没有得到解决。你能解释一下原因吗?有必要做更多解释吗?很抱歉,我迟了回答,那是我的错误,我的数据中有435(作为整数)和“435”(作为字符串),但我不知道,谢谢我的问题解决了。我如何接受答案?你的回答是对的。
print('d' in df['id'])
True
print('d' in df['id'].index)
True
print(df['id'].unique())
['abc' 'sdf' 'ert']

print(type(df['id'].unique()))
<class 'numpy.ndarray'>

print('abc' in df['id'].unique())
True