繁体   English   中英

pandas dataframe 集中的字符串但不在 pandas Z6A8064B5DF47945550DZCC553 的选定列中

[英]String in set of pandas dataframe but not in selected column of pandas dataframe

我有一个 dataframe ,其中一列具有统一的字符串数据类型,对于特定字符串,我想检查它是否在该列中。 我发现简单的比较给出了“假”,但在检查了 dataframe 本身之后,我验证了特定字符串确实在该列中。 另一方面,如果我将选定的列转换为一个集合,我会得到预期的行为。

>>> 'string' in df['col_name']
False
>>> 'string' in set(df['col_name'])
True
  1. 为什么 pandas 数据帧有这种行为?
  2. 检查 object 是否在 pandas dataframe 列中的常规方法是什么?

您需要将df['col_name']转换为值列表。 目前是object series

'string' in df['col_name'].values

'string' in df['col_name']正在搜索系列的index

df['col_name'] 中'string' in df['col_name']被转换为df['col_name'].__contains__('string') Series.__contains__方法将检查系列索引,而不是值。

下面是lib\site-packages\pandas\core\generic.py中系列__contains__的实现

def __contains__(self, key): """True if the key is in the info axis""" return key in self._info_axis

信息轴是索引。


您需要in系列的 ndarray 值上使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM