pandas如何将表中的字符串转成数值型

目录
  • pandas将表中的字符串转成数值型
  • 扩展:pandas 把某一列中字符串变数值_Pandas对文本数据处理
    • 一、str属性
    • 二、替换和分隔
    • 三、提取子串
      • 1、提取第一个匹配的子串
    • 四、生成哑变量

pandas将表中的字符串转成数值型

在用pd.read_csv读数据时,将要转换数据类型的列名和类型名构成字典,传给dtype

import numpy as np
import pandas as pd

path = 'house_data.csv'
col = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS',
       'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV']
dict_dtype = {}
for i in col:
    dict_dtype[i] = np.float64
# print(dict_dtype)

data = pd.read_csv(path, header=None, names=col, sep=',', dtype=dict_dtype)

扩展:pandas 把某一列中字符串变数值_Pandas对文本数据处理

在处理数据的时候,对数值型的数据处理还是比较方便的,但是有时候数值型数据出现问题后就会比较头痛了,因为文本数据的排列组合可是有很多很多的,今天我们就学习一下如何对文本数据进行处理,这样我们接下来在工作中遇到了这些情况就可以少掉一下头发啦。

一、str属性

文本数据也就是我们常说的字符串,pandas为series提供了str属性,通过它可以方便对每个元素进行操作。

为了防止数据被弄坏,我们先预留一个备份以防万一。

这里我们是不能使用backup_user_info = user_info的因为这样的话一个更改另外一个也会更改。

在之前我们也已经了解过,在对series中每个元素处理时,我们可以使用map或apply方法,比如我们想把星球列下面的地球和外星转换为英文,可以使用下面的方式。

这时候我们在将表恢复成原来的样子。

将哪个星球列下的星球改为大写的英文后再改为小写

首先更改为英文

然后设置一个函数,将星球改为大写,原理为upper()方法

然后在设置为小写,原理为lower方法

给英雄们的身高加上一个单位

我们通过str属性来访问之后用到的方法名与 Python 内置的字符串的方法名一样。并且能够自动排除缺失值。 我们再来试试其他一些方法。例如,统计每个字符串的长度。

将cm替换成空白的字符串

将身高列的元素类型转换为整数型

生成一个新的列,列名为姓名的长度,元素为英雄姓名的长度(len方法)

查看表的元素类型

将年不年轻列的中的中年属性更改为中老年属性

查看城市列中每个元素有几个字

查看年不年轻列中每个元素是否有轻这个字符串

二、替换和分隔

使用.srt属性也支持替换与分割操作。先来看下替换操作,例如:将大写的R转换为小写的r。

将列中的数据进行分隔

将是否年轻按年进行分隔,结果如上所述。

分割列表中的元素可以使用 get 或 [] 符号进行访问:

比如说电影的主演有很多人, 可能是用逗号, 或者/ 进行分割, 这是可以用这种方法转换成列表

在表中添加一列英雄的爱人列

将爱人列以,号分隔

这时候就可以让某一行的这个元素以列表表现出来。

将索引列改为英雄姓名,并查看蜘蛛侠和灭霸的爱人

三、提取子串

既然是在操作字符串,很自然的大家可能会想到是否可以从一个长的字符串中提取出子串。答案是可以的。

1、提取第一个匹配的子串

extract方法接受一个正则表达式并至少包含一个捕获组,指定参数 expand=True可以保证每次都返回DataFrame。例如,现在想要匹配空字符串前面的所有的字母,可以使用如下操作:

查看哪位英雄的所在的星球包括E这个字符串

查看哪位英雄所在的城市包括纽这个字符串

四、生成哑变量

首先我们先了解一下什么是哑变量:

哑变量原名为虚拟变量 ( Dummy Variables) 又称虚设变量、名义变量或哑,用以反映质的属性的一个人工变量,是量化了的自变量,通常取值为0或1。引入哑变量可使线形回归模型变得更复杂,但对问题描述更简明,一个方程能达到两个方程的作用,而且接近现实。

在pandas中我们可以通过get_dummies 方法可以将字符串转为哑变量,sep 参数是指定哑变量之间的分隔符。

对英雄姓名进行哑变量转换

从结果可以看出,第0行的英雄姓名是蜘蛛侠,第1行的英雄姓名是灭霸,哑变量转换就是将每一个选择匹配哪一行的数据。

对那个星球进行哑变量转换

从结果可以看出,在地球的英雄是第0、2、3、4、6行的,对应的英雄名称为(蜘蛛侠、奇异博士、钢铁侠、蝙蝠侠、黑寡妇)

到此这篇关于pandas将表中的字符串转成数值型的文章就介绍到这了,更多相关pandas字符串转成数值型内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 让你一文弄懂Pandas文本数据处理

    目录 前言 1. 文本数据类型 1.1. 类型简介 1.2. 类型差异 2. 字符串方法 2.1. 文本格式 2.2. 文本对齐 2.3. 计数与编码 2.4. 格式判断 3. 文本高级操作 3.1. 文本拆分 3.2. 文本替换 3.3. 文本拼接 3.4. 文本匹配 3.5. 文本提取 总结 前言 日常工作中我们经常接触到一些文本类信息,需要从文本中解析出数据信息,然后再进行数据分析操作. 而对文本类信息进行解析是一件比较头秃的事情,好巧,Pandas刚好对这类文本数据有比较好的处理方法,那

  • 从pandas一个单元格的字符串中提取字符串方式

    以titanic数据集为例. 其中name列是字符串,现在想从其中提取title作为新的一列. 例如: # create new Title column df['Title'] = df['Name'].str.extract('([A-Za-z]+)\.', expand=True) 提取其中的title作为新的一列. 以上就是对从pandas的单元格中提取字符串的认识. 这篇从pandas一个单元格的字符串中提取字符串方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多

  • Pandas过滤dataframe中包含特定字符串的数据方法

    假如有一列全是字符串的dataframe,希望提取包含特定字符的所有数据,该如何提取呢? 因为之前尝试使用filter,发现行不通,最终找到这个行得通的方法. 举例说明: 我希望提取所有包含'Mr.'的人名 1.首先将他们进行字符串化,并得到其对应的布尔值: >>> bool = df.str.contains('Mr\.') #不要忘记正则表达式的写法,'.'在里面要用'\.'表示 >>> print('bool : \n', bool) 2.通过dataframe的

  • pandas如何将datetime64[ns]转为字符串日期

    目录 将datetime64[ns]转为字符串日期 示例代码 python datetime与字符串.时间戳与字符串相互转换 情况1:将datetime形式转为需要的字符串 情况2:将字符串形式的时间转为datetime形式 情况3:约定前端传过来datetime形式 情况4:对datetime形式的时间进行减操作 情况5:将前端毫秒时间戳转为年月日时分秒 将datetime64[ns]转为字符串日期 将datetime64[ns]转为字符串日期(“%Y-%m-%d”)最核心的用法是: pand

  • 详解pandas.DataFrame中删除包涵特定字符串所在的行

    你在使用pandas处理DataFrame中是否遇到过如下这类问题?我们需要删除某一列所有元素中含有固定字符元素所在的行,比如下面的例子: 以上所述是小编给大家介绍的pandas.DataFrame中删除包涵特定字符串所在的行详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对我们网站的支持!

  • pandas 如何将字符串映射为数字

    目录 pandas 将字符串映射为数字 pandas 将某一列的字符值转换为数字 pandas 将字符串映射为数字 在有些数据集中,有些数据变量用字符串表示,但为了方便处理,往往想转换为好处理的格式,这时候不一定要用one hot进行编码,也可以直接转成整数: test_df["xx"] = pd.factorize(test_df["xx"])[0].astype(int) 但是这样映射的数字是从0开始的,如果有初始要求,可以对映射结果加上某个值,例如,把从0开始

  • pandas如何将表中的字符串转成数值型

    目录 pandas将表中的字符串转成数值型 扩展:pandas 把某一列中字符串变数值_Pandas对文本数据处理 一.str属性 二.替换和分隔 三.提取子串 1.提取第一个匹配的子串 四.生成哑变量 pandas将表中的字符串转成数值型 在用pd.read_csv读数据时,将要转换数据类型的列名和类型名构成字典,传给dtype import numpy as np import pandas as pd path = 'house_data.csv' col = ['CRIM', 'ZN',

  • 浅谈pandas筛选出表中满足另一个表所有条件的数据方法

    今天记录一下pandas筛选出一个表中满足另一个表中所有条件的数据.例如: list1 结构:名字,ID,颜色,数量,类型. list1 = [['a',1,255,100,'03'],['a',2,481,50,'06'],['a',47,255,500,'03'],['b',3,1,50,'11']] list2结构:名字,类型,颜色. list2 = [['a','03',255],['a','06',481]] 如何在list1中找出所有与list2中匹配的元素?要得到下面的结果:lis

  • mysql替换表中的字符串的sql语句

    核心语句: UPDATE `cdb_pms` SET `subject` = REPLACE(`subject`, 'Welcome to', '欢迎光临') mysql替换字段里数据内容部分字符串 mysql替换表的字段里面内容,如例子: mysql> select host,user from user  where user='testuser'; +-----------------------+----------+ | host                  | user    

  • C#中把字符串String转换为整型Int的小例子

    本文介绍如何在使用C#开发程序时,将一个字符串String变量的值转换为一个整型Int变量. 比如,我们在C#中定义一个字符串变量,用它来获取一个xml中的值.小编这里并不是故意要用一个字符串去获取xml节点的值,而是使用InnerText的方式获取的值必须是字符串String类型的. 复制代码 代码如下: string tmpValue = ""; tmpValue = xml.DocumentElement["expirydays"].InnerText.Tri

  • Lua中操作字符串的基本方法整理

    字符串是一个字符序列,以及控制字符.字符串可以用三种形式被初始化,其中包括: 单引号之间的字符 双引号之间的字符 [] 之间的字符[[和]] 对于上述三种形式的一个例子如下所示. 复制代码 代码如下: string1 = "Lua" print("\"String 1 is\"",string1) string2 = 'Tutorial' print("String 2 is",string2) string3 = [[&qu

  • js中实现字符串和数组的相互转化详解

    最近看了一道JS的面试题,是这样描述的:利用var s1=prompt("请输入任意的字符串","")可以获取用户输入 的字符串,试编程将用户输入的字符串"反转",并且将字符串输出.         想了一下,字符串对象的方法中并没有实现反转的,但是数组中有,于是考虑了字符串和数组的相互转换问题.         JS中的内置对象中包括字符串对象(String)和数组对象(Array),这两个对象是可以通过它们对象的方法实现相互 转化的.对于St

  • python 将列表中的字符串连接成一个长路径的方法

    今天实习公司分配了一个数据处理的任务.在将列表中的字符串连接成一个长路径时,我遇到了如下问题: import os path_list = ['first_directory', 'second_directory', 'file.txt'] print os.path.join(path_list) 发现 os.path.join 之后,依然是字符串列表.这我就纳闷了: ['first_directory', 'second_directory', 'file.txt'] 细思后想明白了,os

  • 注册表中存储数据库链接字符串的方法

    数据库的链接字符串是用数据库开发所必须的信息,我们通过链接字符串连接数据库,并进行各种数据库操作.那么链接字符串的存到哪里好呢?这没有什么定论,Asp系统开发中,一般存在一个conn.asp包含文件中或者如果又是COM,可能还会封闭到COM中,.Net开发中,大多数都选择存在Web.conifg中,也有人存储在另外一个单独的文件中.那么本文提供的是把数据库链接信息存储到注册表中的方案.也许你要问为什么要存到注册表呢?我想最起码的好处是安全,注册表的访问权限很高,一般远程服务在没有得到管理员账号的

  • pandas 取出表中一列数据所有的值并转换为array类型的方法

    如下所示: # -*-coding: utf-8 -*- import pandas as pd #读取csv文件 df=pd.read_csv('A_2+20+DoW+VC.csv') #求'ave_time'的平均值 aveTime=df['ave_time'].mean() #把ave_time这列的缺失值进进行填充,填充的方法是按这一列的平均值进行填充 df2=df.fillna(aveTime) #取表中的第3列的所有值 col=df2.iloc[:,2] #取表中的第3列的所有值 a

随机推荐