首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在多个列上应用pd.to_numeric后,列数据类型没有变化

可能是由于以下原因:

  1. 数据中包含非数字字符:pd.to_numeric函数默认将非数字字符转换为NaN(Not a Number),如果数据中包含非数字字符,转换后的数据类型仍然是object类型。可以通过设置errors参数为'coerce'来强制将非数字字符转换为NaN。
  2. 数据中包含缺失值:pd.to_numeric函数默认将缺失值转换为NaN,如果数据中包含缺失值,转换后的数据类型仍然是float类型。可以通过设置errors参数为'coerce'来强制将缺失值转换为NaN。
  3. 数据中包含特殊字符或格式不正确:pd.to_numeric函数要求数据格式正确,如果数据中包含特殊字符或格式不正确,转换后的数据类型仍然是object类型。可以通过预处理数据,去除特殊字符或修正格式,然后再应用pd.to_numeric函数。
  4. 数据中包含太大或太小的数值:pd.to_numeric函数默认将超出浮点数范围的数值转换为NaN,如果数据中包含太大或太小的数值,转换后的数据类型仍然是float类型。可以通过设置downcast参数为'integer'来将超出整数范围的数值转换为整数类型。

综上所述,如果在多个列上应用pd.to_numeric后,列数据类型没有变化,可以检查数据中是否包含非数字字符、缺失值、特殊字符或格式不正确的情况,并进行相应的处理。另外,还可以尝试设置errors参数为'coerce'或downcast参数为'integer'来强制转换数据类型。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【原创干货】6000字、22个案例详解Pandas数据分析预处理时的实用技巧,超简单

rownames/colnames: 行/的名称 aggfunc: 指定聚合函数 values: 最终聚合函数之下,行与一同计算出来的值 normalize: 标准化统计各行各的百分比 我们通过几个例子来进一步理解...当然我们这里只是指定了一个,也可以指定多个,代码如下 pd.crosstab(df['省份'], [df['顾客类型'], df["性别"]]) output 顾客类型 会员 普通...Int64') df['mix_col'].dtypes output Int64Dtype() 而对于"money_col"这一字符串面前有一个货币符号,并且还有一系列的标签符号,我们先调用...(df['money_regex']) df['money_regex'] 另外我们也可以通过astype()方法,对多个一步到位进行数据类型的转换,代码如下 df = df.astype({...'string_col': 'float16', 'int_col': 'float16' }) 或者第一步数据读取的时候就率先确定好数据类型,代码如下 df = pd.read_csv(

1.5K10

Pandas中更改数据类型【方法总结】

例如,上面的例子,如何将2和3转为浮点数?有没有办法将数据转换为DataFrame格式时指定类型?或者是创建DataFrame,然后通过某种方法更改每的类型?...默认情况下,它不能处理字母型的字符串’pandas’: >>> pd.to_numeric(s) # or pd.to_numeric(s, errors='raise') ValueError: Unable...对于多或者整个DataFrame 如果想要将这个操作应用多个,依次处理每一是非常繁琐的,所以可以使用DataFrame.apply处理每一。...在这种情况下,设置参数: df.apply(pd.to_numeric, errors='ignore') 然后该函数将被应用于整个DataFrame,可以转换为数字类型的将被转换,而不能(例如,它们包含非数字字符串或日期...软转换——类型自动推断 版本0.21.0引入了infer_objects()方法,用于将具有对象数据类型的DataFrame的转换为更具体的类型。

20.2K30
  • 将文本字符串转换成数字,看pandas是如何清理数据的

    都包含文本/字符串,我们将使用不同的技术将它们转换为数字。我们使用列表解析创建多个字符串列表,然后将它们放入数据框架中。...记住,数据框架中的所有值都是字符串数据类型。 图1 df.astype()方法 这可能是最简单的方法。我们可以获取一字符串,然后强制数据类型为数字(即整数或浮点数)。...图3 这个方法看起来很容易应用,但这几乎是它所能做的——它不适用于其余的。原因是其他都包含某种特殊字符,如逗号(,)、美元符号($)、百分比(%)等。...然而,这种方法某些需要清理数据的情况下非常方便。例如,l8中的数据是“文本”数字(如“1010”)和其他实文本(如“asdf”)的混合。...pd.to_numeric方法中,当errors=’coerce’时,代码将运行而不引发错误,但对于无效数字将返回NaN。 然后我们可以用其他伪值(如0)替换这些NaN。

    6.9K10

    Pandas 数据类型概述与转换实战

    进行数据分析时,确保使用正确的数据类型是很重要的,否则我们可能会得到意想不到的结果或甚至是错误结果。...我们必须手动更正这些数据类型 pandas 中转换数据类型,有三个基本选项: 使用 astype() 强制转换数据类型 创建自定义函数来转换数据 使用 pandas 函数,例如 to_numeric... sales 中,数据包括货币符号以及每个值中的逗号; Jan Units 中,最后一个值是“Closed”,它不是数字 我们再来尝试转换 Active df['Active'].astype...但这不是 pandas 中的内置数据类型,所以我们使用 float 方法 现在我们可以使用 pandas 的 apply 函数将其应用于 2016 中的所有值 df['2016'].apply(convert_currency...astype() 函数和更复杂的自定义函数之间有一个中间地带,这些辅助函数对于某些数据类型转换非常有用 到目前为止,我们没有对日期或 Jan Units 做任何事情。

    2.4K20

    -看上去一样的数字

    这次想说一下,看起来都是正确的数值数据,人和机器理解起来的差别 Pandas 加载数据, head() 预览一下,感觉数据还不错,但是,很有可能是被数据的表象所蒙蔽了。...这样问题的产生主要是语言设计者所决定的,他们只是没有把字符串的拼接和数值相加使用了同样的操作符。 下面就造一些数据, DataFrame 中看起来都像是数值类型数字的数据。 ?...现在我们最迫切需要知道的每数据的类型是什么,Pandas 已经提供了查看 DataFrame 各个数据类型的属性。 ?...转换失败,to_numeric() 不能将字符串 “F”转换为数值类型,我们也没有代码中控制,所以抛异常了。...Number) df.loc['Data2'] = pd.to_numeric(df.loc['Data2'] ,errors='coerce') # 查看成功转换的结果 df.loc['Data2

    91731

    Pandas 高性能优化小技巧

    Ray 的默认模式是多进程,它可以从一台本地机器的多个核心扩展到一个机器集群上。通信方面,Ray 使用共享内存,并且通过 Apache Arrow 实现零拷贝串行化,显著降低了进程之间的通信代价。...底层的设计中,pandas按照数据类型分组形成数据块(blocks)。pandas使用ObjectBlock类来表示包含字符串列的数据块,用FloatBlock类来表示包含浮点型的数据块。...pandas中的许多数据类型具有多个子类型,比如,float型就有float16、float32和float64子类型,分别使用了2、4、8个字节。...object中的每一个元素实际上都是存放内存中真实数据位置的指针。 category类型底层使用整型数值来表示该的值,而不是用原值。Pandas用一个字典来构建这些整型数据到原数据的映射关系。...当一只包含有限种值时,这种设计是很不错的。当我们把一转换成category类型时,pandas会用一种最省空间的int子类型去表示这一中所有的唯一值。 ? object数据类型 ?

    3K20

    关于MySQL索引选择,先看看这十条建议

    创建索引,数据库可以快速定位到特定日期范围的订单,而不需要扫描整个表。这对于大型表来说尤其重要,因为全表扫描可能会非常耗时。4. 使用短索引如果可能,应该使用短索引,尽量选择数据类型小的列作为索引。...你应该根据你的应用的实际需求来选择索引。6. 多索引(联合索引)如果经常需要通过多个来进行查询,那么可以考虑创建多索引。但是要注意,多索引并不等于多个单列索引。...避免频繁更新的列上建立索引如果一个的值经常变化,那么每次值变化都需要更新索引,这将导致数据库的性能下降。因此,尽量避免更新频率高的列上建立索引。...因此,尽管 last_login 列上创建一个索引可能会加快某些查询的速度(例如,查找最近登录的用户),但由于这个的值经常变化,所以最好避免在这个列上创建索引。...);相反,我们应该考虑在其他不太可能经常变化列上创建索引,例如 email 或 username 

    47010

    Pandas使用技巧:如何将运行内存占用降低90%!

    dataframe 的内部表示 pandas 内部,同样数据类型会组织成同一个值块(blocks of values)。...无符号整型让我们可以更有效地处理只有正数值的。 使用子类型优化数值 我们可以使用函数 pd.to_numeric() 来对我们的数值类型进行 downcast(向下转型)操作。...让我们为原始 dataframe 创建一个副本,并用这些优化替换原来的,然后看看我们现在的整体内存用量。...但是正如我们前面提到的一样,我们往往没有足够的内存来表示数据集中的所有值。如果我们一开始甚至无法创建 dataframe,我们又可以怎样应用节省内存的技术呢?...首先,我们可将每一的最终类型存储一个词典中,其中键值表示列名称,首先移除日期,因为日期需要不同的处理方式。

    3.6K20

    PostgreSQL 索引类型详解

    对于多索引,等式约束应用于前导,并且第一个没有等式约束的列上应用不等式约束,这些约束将限制扫描索引的部分。...单个表上,多个BRIN索引通常没有必要,除非需要使用不同的存储参数(pages_per_range)。...该索引覆盖构成主键或唯一约束的(如果适用,会创建多索引),并用于实施约束。 注意事项: 唯一约束列上手动创建索引通常是多余的,因为系统会自动创建该索引。...注意事项: 添加非键列到索引可能会增加索引的大小,可能导致性能下降,尤其是对于宽表数据变化较慢的情况下,才有利于索引只扫描不访问堆。...索引的选择和使用 设计和选择索引时,需要考虑以下因素: 查询模式:经常执行的查询类型是什么? 数据类型:表中存储的数据类型及其特点。 数据分布:索引列上数据的分布情况,是否均匀?

    7010

    教程 | 简单实用的pandas技巧:如何将内存占用降低90%

    dataframe 的内部表示 pandas 内部,同样数据类型会组织成同一个值块(blocks of values)。...无符号整型让我们可以更有效地处理只有正数值的。 使用子类型优化数值 我们可以使用函数 pd.to_numeric() 来对我们的数值类型进行 downcast(向下转型)操作。...让我们为原始 dataframe 创建一个副本,并用这些优化替换原来的,然后看看我们现在的整体内存用量。...但是正如我们前面提到的一样,我们往往没有足够的内存来表示数据集中的所有值。如果我们一开始甚至无法创建 dataframe,我们又可以怎样应用节省内存的技术呢?...我们可以看到 1920 年代以前,星期日的棒球比赛很少,但在上个世纪后半叶就变得越来越多了。 我们也可以清楚地看到过去 50 年来,比赛的日期分布基本上没什么大变化了。

    3.8K100

    分享30个超级好用的Pandas实战技巧

    ='coerce'将其换转成NaN,代码如下 # 针对整个数据集都有效 df = df.apply(pd.to_numeric, errors="coerce") # 将空值用零来填充 pd.to_numeric...assign方法,当然除此之外还有其他的方法可供尝试,代码如下 # 摄氏度与华氏度之间的数制转换 df.assign(temp_f=lambda x: x.temp_c * 9 / 5 + 32) 指定的位置插入新的一...insert方法,代码如下 random_col = np.random.randint(10, size=len(df)) df.insert(3, 'random_col', random_col) # 第三的地方插入...enumerate(df.isna().mean() * 100) if perc > 0 ] if len(missing) == 0: return "没有空值数据的存在..."12"] # 筛选出每一年的数据 df[df["Date"].dt.strftime("%Y") == "2020"] 将格式化数据集 保留指定位数 对于一些浮点数的数据,我们希望可以保留小数点的两位或者是三位

    64310

    pandas 变量类型转换的 6 种方法

    转换时遇到错误的设置,ignore, raise, coerce,下面例子中具体讲解 downcast:转换类型降级设置,比如整型的有无符号signed/unsigned,和浮点float 下面例子中,s是一数据...pd.to_numeric(s) # 默认float64类型 pd.to_numeric(s, downcast='signed') # 转换为整型 4、转换字符类型 数字转字符类型非常简单,可以简单的使用...比如,当我们遇到'[1,2,3]'这种情况的时候,我们实际想获取里面的列表,但是现在却是个字符串类型,我们可以使用eval函数将''这个外套直接去掉,去掉自动转换成里面数据类型。...appl_tm appl_tm1 0 2022-04-01 2012-03-04 1 2022-04-02 2021-09-04 2 2022-04-03 2031-06-05 转换为日期类型,...中的出场率并不是很高,一般不考虑优化效率时,会用其它类型替代。

    4.5K20

    一文读懂mysql的索引

    索引名称表中必须是唯一的。(column1, column2, ...): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些数据类型通常是数值、文本或日期。...(column1, column2, ...): 定义表的列名和数据类型。你可以指定一个或多个列作为索引的组合。这些数据类型通常是数值、文本或日期。INDEX: 用于创建普通索引的关键字。...索引名称表中必须是唯一的。(column1, column2, ...): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些数据类型通常是数值、文本或日期。...约束名称表中必须是唯一的。UNIQUE (column1, column2, ...): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些数据类型通常是数值、文本或日期。...创建唯一索引之前,你可能需要确保表中的 email 没有重复的值。创建表的时候直接指定我们也可以创建表的同时,你可以 CREATE TABLE 语句中使用 UNIQUE 关键字来创建唯一索引。

    9310

    【Python】这25个Pandas高频实用技巧,不得不服!

    你可以对第三使用to_numeric()函数,告诉其将任何无效数据转换为NaN: pd.to_numeric(df.col_three, errors='coerce') 0 7.7 1...值得注意的是,如果跟行数相比,category数据类型数相对较小,那么catefory数据类型可以减小内存占用。 9....按多个文件中构建DataFrame 上一个技巧对于数据集中每个文件包含行记录很有用。但是如果数据集中的每个文件包含的信息呢?...更改显示选项 我们再来看一眼Titanic 数据集: titanic.head() 注意到,Age保留到小数点1位,Fare保留到小数点4位。...可以看到,Age和Fare现在已经保留小数点两位。注意,这并没有修改基础的数据类型,而只是修改了数据的显示结果。

    6.5K50

    【MySQL】04_约束

    可以作用在多个列上,不与一起,而是单独定义 级约束与表级约束的区别 位置 支持的约束类型 是否可以起约束名 的后面 语法都支持,但外键没有效果 不可以 所有的下面 默认和非空不支持,其他支持 可以...FOREIGN KEY 检查约束 检查某个字段的值是否符号xx要求,一般指的是值的范围 CHECK 默认值约束 给某个字段/某指定默认值,一旦设置默认值,插入数据时,如果此字段没有显式赋值,则赋值为默认值...唯一约束可以是某一个的值唯一,也可以多个组合的值唯一。 唯一性约束允许值为空。 创建唯一约束的时候,如果不给唯一约束命名,就默认和列名相同。...从表”中指定外键约束,并且一个表可以建立多个外键约束 从表的外键与主表被参照的列名字可以不相同,但是数据类型必须一样,逻辑意义一致。...unique key(字段名) ); 说明:默认值约束一般不在唯一键和主键列上加 建表 alter table 表名称 modify 字段名 数据类型 default 默认值; #如果这个字段原来有非空约束

    2.4K20

    MySQL 索引完全指南:提升性能的黄金法则与终极技巧

    l可以多个列上创建唯一索引。 注意事项: l普通索引适用于查询频繁但没有唯一性要求的。 l普通索引的值可以重复且允许 NULL 值。...普通索引 (Index) 简介: l普通索引是最基本的索引类型,没有唯一性约束。 l可以表的一个或多个列上创建。 特点: l提高查询速度,没有唯一性要求。 l可以列上创建组合索引。...组合索引 (Composite Index) 简介: l组合索引是指在多个列上创建的索引。 l可以包含多个,通常用于联合查询。 特点: l提高多组合查询的性能。...2.函数操作:索引列上使用函数会导致索引失效。 3.类型不匹配:查询条件中的数据类型与索引类型不匹配,会导致索引失效。...4.使用 OR:多个条件之间使用 OR 可能会导致索引失效,尤其是当 OR 条件中的没有索引时。 1.Like %使用:禁止使用%前缀模糊查询,例如LIKE “%ganji”,索引失效。

    13110
    领券