pandas如何将表中的字符串转成数值型
作者:huluhuluwa123 发布时间:2021-10-10 08:03:33
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行的,对应的英雄名称为(蜘蛛侠、奇异博士、钢铁侠、蝙蝠侠、黑寡妇)
来源:https://blog.csdn.net/Blankit1/article/details/102864579


猜你喜欢
- 一.图像加法运算1.Numpy库加法其运算方法是:目标图像 = 图像1 + 图像2,运算结果进行取模运算。当像素值<=255时,结果为
- 抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢?最近都在做原生JS熟悉的练习。。。用原生Js封装了一个Ajax插件,引入一般的项
- 某些杀毒软件会把正常的asp文件误认为是asp木马文件,而自动删除,影响正常使用。下面方法可能会有效避免被杀毒软件删除把dim t
- 用python读取excel表中的数据假如说有如下一张存储了数据的excel表,其中x1-x6是特征,y_label是特征对应的类别标签。我
- 目录前言总结:1.代码块的缓存机制2.小数据池3.优缺点小整数对象池大整数对象池字符串驻留机制简单原理:前言本文除"总结"
- 前几天有一个需求,透视表中的年级这一列要按照一年级,二年级这样的序列进行排序,但是用过透视表的人都知道,透视表对中文的排序不是太理想,放弃p
- 从 Google 的一个细节说起:整个虚线框都是“Next”的可点击区域。看似不经意,却直接提升了细节的可用性。其它页码也巧妙地和上面的字母
- asyncio的关键字说明event_loop事件循环:程序开启一个无限循环,把一些函数注册到事件循环上,当满足事件发生的时候,调用相应的协
- 目录前言简介实现实现效果总结前言坦克大战是一款策略类的平面射击游戏,于 1985 年由 Namco 游戏公司发布,尽管时至今日已经有了很多衍
- 前言有时候我们的小程序太大,首次打开小程序的时候回比较慢,这个时候我们可以试试分包操作。分包可以让用户在操作小程序的时候按需下载资源(用户在
- 在oracle数据库迁移至mysql数据库,除了oracle数据库模型移到mysql外,还一个重要环节就是要将oracle数据库的数据移到m
- 本文实例讲述了Python实现的微信公众号群发图片与文本消息功能。分享给大家供大家参考,具体如下:在微信公众号开发中,使用api都要附加ac
- python脚本替换指定行实现步骤 本文主要介
- 在 Facebook 上有一个彩蛋:登录 facebook.com ,点击你首页的任何地方,键盘输入 Up, Up, Down, Down,
- 这篇文章主要介绍了Python定义函数时参数有默认值问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 有时候我们只知道列的名字,但是不知道这列数据到底在哪个表里面,那么可以用下面的办法把含有这列数据的表查找出来。Select O.name o
- 1 、据说python3就没有这个问题了2 、u'字符串' 代表是unicode格式的数据,路径最好写成这个格式,别直接跟字
- 一个完整的程序离不开日志,无论是开发阶段,还是测试阶段,亦或程序运行阶段,都可以通过日志查看程序的运行情况,或是定位问题。下面是对 pyth
- MySQL 字符编码集中有两套 UTF-8 编码实现:utf8 和 utf8mb4。如果使用 utf8 的话,存储 emoji 符号和一些比
- 废话不多说,直接上代码!updateBody = { "query":{ &nb