首页 > 编程问答 >如何将 Pandas Dataframe 过滤为整数值?

如何将 Pandas Dataframe 过滤为整数值?

时间:2024-07-27 04:42:00浏览次数:11  
标签:python pandas

我有一个包含字符串值的数据框列。我想过滤到具有整数的行。我可以执行以下操作来查找它是否是数字,但这也会返回浮点数。

result = pd.to_numeric(df['col1'], errors='coerce').notnull()

应该返回“1”

不应返回“1.1”。

如何过滤为整数(不包括漂浮)?


可以使用 .is_integer() 方法来检查数字是否为整数。 以下是的操作方法:

df[pd.to_numeric(df['col1'], errors='coerce').apply(lambda x: x.is_integer() if not pd.isna(x) else False)]

让我们来分解一下这段代码:

  1. pd.to_numeric(df['col1'], errors='coerce') : 这部分与所做的相同,它会尝试将“col1”中的值转换为数字。如果无法转换某个值(例如,如果它是文本字符串),则将其设置为 NaN
  2. .apply(lambda x: x.is_integer() if not pd.isna(x) else False) : 这部分对 to_numeric 生成的结果应用了一个函数。Lambda 函数检查值是否是 NaN 。如果不是 NaN ,它将使用 .is_integer() 方法检查它是否是整数。如果是整数,则返回 True ,否则返回 False 。如果是 NaN ,它也会返回 False
  3. df[...] : 最后,我们将布尔索引的结果列表作为过滤器应用于原始数据框,只选择值为 True 的行,即转换为整数的行。

这将为提供一个仅包含“col1”中具有整数值的行的数据框。

以下是一个示例:

import pandas as pd

df = pd.DataFrame({'col1': ['1', '1.1', '2', 'abc', '3.0']})
filtered_df = df[pd.to_numeric(df['col1'], errors='coerce').apply(lambda x: x.is_integer() if not pd.isna(x) else False)]
print(filtered_df)

输出:

  col1
0     1
2     2

如所见,只有值为“1”和“2”的行被保留了下来,因为只有这些值是整数。

标签:python,pandas
From: 78799154

相关文章

  • 使用类型提示将 Python 转换为 Cython
    类型提示现在在Python3.5版本中可用。在规范(PEP484)中,目标(和非目标)被明确暴露:#RationaleandGoals此PEP旨在为类型注释提供标准语法,开放Python代码更容易静态分析和重构、潜在的运行时类型检查以及(也许在某些情况下)利用类型信息生成代码。......
  • 在 Python 类型提示中区分 PySpark 和 Pandas DataFrame (PyCharm)
    在PyCharm中,如果使用apyspark.sql.DataFrame代替pandas.DataFrame,类型提示似乎不会触发警告,反之亦然。例如以下代码根本不会生成任何警告:frompyspark.sqlimportDataFrameasSparkDataFramefrompandasimportDataFrameasPandasDataFramedef......
  • 如何在Python中继承类型提示?
    所以我的问题是,当我有一个A类型的类来做事情并且我使用这些函数作为subclass(B)时,它们仍然是类A的类型,并且不接受我的类B对象作为参数或作为函数签名。我的问题简化了:fromtypingimportTypeVar,Generic,CallableT=TypeVar('T'......
  • Python - 如何传递类对象的函数参数类型(打字)
    我想python3.7附带了(不确定),不仅可以将变量名传递给函数,还可以传递变量的类型。我想知道的是是否有可能传递特定类的类型。以同样的方式传递:deffoo_func(i:int)->None:pass如果我有一个类,让我们说:classfoo_class(object):pass我如何转换fo......
  • Numpy&Pandas:pandas库的安装,不同对象的建立,文件的导入和了解数据
    目录前言一、Pandas库的安装二、不同对象的建立1.Series对象的创建1.用index方法指定索引2.在创建的时候就指定索引3.使用字典的方式创建4.将一个常量与index一起传入创建5.输出值和索引2.DataFrame对象的创建1.不指定列名则以键当列名行索引为默认值2.columns指......
  • 使用 Python 构建简单 REST API
    使用Python构建简单RESTAPI1.概述本技术文档旨在指导开发者使用Python框架Flask构建一个基本的RESTAPI。通过学习本指南,您将掌握创建、读取、更新和删除(CRUD)操作的基本知识,并能够使用Python构建自己的API。2.安装依赖首先,您需要确保已安装Python和Flask......
  • Python——Pandas(第二讲)
    文章目录变量类型的转换Pandas支持的数据类型在不同数据类型间转换建立索引新建数据框时建立索引读入数据时建立索引指定某列为索引列将索引还原变量列引用和修改索引引用索引修改索引修改索引名修改索引值更新索引Series的索引和切片DataFrame的索引和切片选择列按......
  • 基于Python+Django的红色文化研学网站设计与实现
    ......
  • 【python】对网站进行请求-初识
    python实现对网站进行请求代码如下importrequestsdefget_data(url,headers=None,params=None,timeout=10):try:res=requests.get(url,headers=headers,params=params,timeout=timeout)res.raise_for_status()returnres.text......
  • 【python】Django初识-从未有如此美妙的开局
    Django初识python、Django安装与验证python安装Python官网https://www.python.org/Django安装pipinstallDjango验证python是否安装成功python--version验证Django是否安装成功python3-mdjango--version创建第一个Django项目项目创建与服务器启动打开cmd,输......