Pandas 类型转换astype()的实现
作者:山茶花开时。 发布时间:2022-03-13 17:39:52
标签:Pandas,类型转换,astype()
Python中和Pandas中数据类型对应关系如下:
果数据是纯净的数据,可以转化为数字
astype基本也就是两种用作,数字转化为单纯字符串,单纯数字的字符串转化为数字,含有其他的非数字的字符串是不能通过astype进行转化的。
需要引入其他的方法进行转化,也就有了下面的自定义函数方法
astype()是最常见也是最通用的数据类型转换方法
import pandas as pd
df = pd.DataFrame([['liver','E',89,21,24,64],
['Arry','C',36,37,37,57],
['Ack','A',57,60,18,84],
['Eorge','C',93,96,71,78],
['Oah','D',65,49,61,86]
],
columns = ['name','team','Q1','Q2','Q3','Q4'])
res = df.dtypes
df.Q1.astype('int32').dtypes # dtype('int32')
df.astype({'Q1':'int32','Q2':'int32'}).dtypes
结果展示
df
res
扩展
# 以下是一些使用示例:
df.index.astype('int64') # 索引类型转换
df.astype('int32') # 所有数据转换为int32
df.astype({'col1':'int32'}) # 指定字段转指定类型
s.astype('int64')
s.astype('int64',copy = False) # 不与原数据关联
df['name'].astype('object')
data['Q4'].astype('float')
s.astype('datatime64[ns]') # 转为时间类型
data['状态'].astype('bool')
数据类型
df.dtypes会返回每个字段的数据类型及DataFrame整体的类型
如果是Series,需要用s.dtype
import pandas as pd
df = pd.DataFrame([['liver','E',89,21,24,64],
['Arry','C',36,37,37,57],
['Ack','A',57,60,18,84],
['Eorge','C',93,96,71,78],
['Oah','D',65,49,61,86]
],
columns = ['name','team','Q1','Q2','Q3','Q4'])
df.dtypes
s = pd.Series(['One','Two','Three'])
s.dtype
结果展示
df
s
当数据的格式不具备转换为目标类型的条件时,需要先对数据进行处理
例如“89.3%”是一个字符串,要转换为数字,要先去掉百分号:
# 将"89.3%"这样的文本转为浮点数
data.rate.apply(lambda x:x.replace('%','')).astype('float')/100
加载数据时可以指定数据各列的类型:
import pandas as pd
# 对所有字段指定统一类型
df = pd.DataFrame(data, dtype = 'float32')
# 对每个字段分别指定
df = pd.read_excel(data, dtype = {'team':'string','Q1':'int32'})
来源:https://blog.csdn.net/Hudas/article/details/122921649


猜你喜欢
- 在ASP中,如何获得ADO的连接信息? 具体方法见下列代码:<%Sub Connecti
- 前言本章介绍pandas中的缺失数据,主要内容有:pandas中对np.nan的操作: 统计 、 删除 、 填充 、 插值 pan
- 本篇文章主要介绍在插入数据到表中遇到键重复避免插入重复值的处理方法,主要涉及到IGNORE,ON DUPLICATE KEY UPDATE,
- 一、局部变量1 定义在{}里面的变量时局部变量,只能在{}里面有效2 执行到定义的那句话,开始分配内存空间,离开作用域自动进行释放3 作用域
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 20 - A Few Mootools Tabs项
- 处理数据时,经常需要对索引进行处理,那么可以通过set_index和reset_index来进行处理官方文档DataFrame.set_in
- 1. 特定版本的python-opencv安装在https://www.lfd.uci.edu/~gohlke/pythonlibs/#op
- 我的终极整理,供参考# coding:utf-8import matplotlib# 使用 matplotlib中的FigureCanvas
- 切片的解析当我们的代码敲下[]时,便会被go编译器解析为抽象语法树上的切片节点, 被初始化为切片表达式SliceType:// go/src
- XML文档因为其固有的描述性特性而趋向于变得很罗嗦。其结果是文档会由于被描述的数据增多而变得很长,而这种很大的文档会在需要同其他实体进行交换
- 升级背景:为了解决mysql低版本的漏洞,从mysql5.5升级到了8.0.11版本,再次升级到了8.0.17版本(从版本是2019.7.2
- 本文为大家分享了mysql 8.0.15 安装配置图文教程,供大家参考,具体内容如下1.进官网,选择适合自己版本的linux下的MYSQL版
- 前言这篇文章将详细讲解开始图像形态学知识,主要介绍图像腐蚀处理和膨胀处理。数学形态学(Mathematical Morphology)是一种
- 因为python是动态语言,变量类型是可变的,所以不管pycharm还是sublime都做不到准确的类型推断。一个比较取巧的做法是asser
- 效果:myvcode.class.php:封装创建验证码的类<?php/** file:myvcode.class.php* 验证码类
- 应该是开心网(kaixin.com)的宠物功能又升级了,这几次发来的邮件内容不仅不能让我开心,反而让我觉得很恶心。开心网注册也一段时间了,之
- 非常简单的函数,但是官网的介绍令人(令我)迷惑,所以稍加解释。 mask_select会将满足mask(掩码、遮罩等等,随便翻译)的指示,将
- 在之前的博客 人脸识别经典算法一:特征脸方法(Eigenface)里面介绍了特征脸方法的原理,但是并没有对它用到的理论基础PCA做介绍,现在
- 1.1. 前言众所周知,安服工程师又叫做Word工程师,在打工或者批量SRC的时候,如果产出很多,又需要一个一个的写报告的情况下会非常的折磨
- 自从jQuery搞出特性侦探这东东,西方从来没有如此狂热研究浏览器。在以前javascript与DOM遍地是bug,美工主宰前端的年代,人们