当前位置: 首页 > 面试题库 >

在pandas中,如何根据值的类型过滤系列?

岳研
2023-03-14
问题内容

给个Series喜欢

import pandas as pd

s = pd.Series(['foo', 'bar', 42])

我想获得一个“子系列” pd.Series(['foo', 'bar']),其中所有值都是字符串。我已经尝试过像这样的布尔索引:

s[isinstance(s, str)]

但这给了

KeyError:错误

到目前为止,在寻找合适的方法时,我遇到了select,但这在标签上强加了一个标准,而不是值。在这种情况下,如何基于值的类型进行过滤?


问题答案:

使用apply或列出理解:

s[s.apply(lambda x: isinstance(x, str))]

一样,谢谢Jon Clements♦

s[s.apply(isinstance, args=(str,))]
s[[isinstance(x, str) for x in s]]

全部返回

0    foo
1    bar
dtype: object

编辑:

不推荐这样做,谢谢cᴏʟᴅsᴘᴇᴇᴅ:

s[s.apply(type) == str]


 类似资料:
  • 问题内容: 在执行groupby(’name’)并在其他列上使用过mean()函数后,我得到了这样的系列 谁能告诉我如何过滤出平均值为1.000000的行?谢谢,我非常感谢您的帮助。 问题答案: In [5]:

  • 问题内容: 我有一个很大的时间序列数据帧(称为 df ),前5条记录如下所示: 目标: 我正在尝试删除 “ stn” 列中存在列表中 任何 字符串 的 行。因此,我基本上是在尝试过滤此数据集,以使其不包含以下列表中包含任何字符串的行。 尝试: 返回值: 出[78]: 没有! 我尝试了一些引号,方括号甚至是lambda函数的组合;尽管我还很新,所以可能没有正确使用语法。 问题答案: 使用isin:

  • 下面是我的搜索响应示例,检索到4个结果。 现在,我想根据下面的标准,根据特定的“dir”字段值过滤上述搜索结果。 在且仅在以下情况下将搜索结果包含在响应中: 如果“dir”字段值等于“/shared”或“/private/hitesh” 如果“dir”字段值以“/shared/”或“/private/hitesh/”开头,则为其他 如何在ElasticSearch中实现上述功能?

  • 在Pandas的数据框中,一些列是数字的,像浮动;一些是非数字的,像对象。我们希望删除那些数值列为NaN的行,但不删除那些非数值列为NaN的行。 例如,对于具有四列的df:a、B、C和D。a和C的数据类型为Object,B和D的数据类型为Float。 我们将只删除其中一些数字列(浮点数)为NaN的行,而不应该删除其中一些非数字列(对象)为NaN的行。 最终结果如下: 我的步骤是: 检查哪些列的数据

  • 问题内容: 我正在做熊猫分析。 我的表有700万行* 30列。单元格值的范围从-1到3随机。现在,我想根据列的值过滤掉行。 我了解如何根据多个条件进行选择,写下条件并通过“&”“ |”组合。 但是我有30列要过滤,并按相同的值过滤。例如,需要选择最后12列的值等于-1 上面的代码给了我一个布尔值。我需要实际的数据框。 这里的逻辑是“或”,表示如果任何列的值为-1,则需要选择该行。另外,很高兴知道我

  • 问题内容: 我试图执行以下SQL查询并根据日期过滤出数据。 我需要显示一个表,该表过滤掉数据,使得仅那些提到的start_date和end_date之间的行 这是我一直在尝试的查询 我也从2012年获得了具有价值的结果。请帮帮我 谢谢 问题答案: 由于您没有提及任何错误(如果和是数据类型),因此查询没有任何问题。如果您没有获得正确的记录,请检查数据。 但是你的。您可以遵循一些好的做法来避免此类问题