小白学 Python 数据分析(9):Pandas (八)数据预处理(2)

人生苦短,我用 Python

前文传送门:

小白学 Python 数据分析(1):数据分析基础

小白学 Python 数据分析(2):Pandas (一)概述

小白学 Python 数据分析(3):Pandas (二)数据结构 Series

小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame

小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据

小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择

小白学 Python 数据分析(7):Pandas (六)数据导入

小白学 Python 数据分析(8):Pandas (七)数据预处理

引言

前一篇文章我们介绍了数据预处理中数据有问题的几种情况以及一般处理办法。

很经常,当我们拿到数据的时候,首先需要确定拿到的是正确类型的数据,如果数据类型不正确,一般通过数据类型的转化

数据类型转化

大家应该都知道 Excel 中数据类型比较多,常用的有文本、数字、货币、时间、日期等等,在 Pandas 中,相对而言数据类型就少了很多,常用的有 int64 , float64 , object , datetime64 等等。

还是使用前面的示例,我们先看下当前数据表中的数据类型,这里使用的 dtypes ,示例如下:

import pandas as pd

# 相对路径
df = pd.read_excel("result_data.xlsx")
print(df)

# 输出结果
    plantform  read_num  fans_num  rank_num  like_num         create_date
0      cnblog     215.0         0     118.0         0 2019-11-23 23:00:10
1      cnblog     215.0         0     118.0         0 2019-11-23 23:00:10
2      juejin       NaN         0      -2.0         1 2019-11-23 23:00:03
3        csdn    1652.0        69       0.0        24 2019-11-23 23:00:02
4      cnblog     650.0         3       NaN         0 2019-11-22 23:00:15
..        ...       ...       ...       ...       ...                 ...
404    juejin     212.0         0      -1.0         2 2020-02-20 23:00:02
405      csdn    1602.0         1       0.0         1 2020-02-20 23:00:01
406    cnblog      19.0         0      41.0         0 2020-02-21 23:00:05
407    juejin     125.0         1      -4.0         0 2020-02-21 23:00:02
408      csdn    1475.0         8       0.0         3 2020-02-21 23:00:02

print(df.dtypes)

# 输出结果
plantform              object
read_num              float64
fans_num                int64
rank_num              float64
like_num                int64
create_date    datetime64[ns]
dtype: object

当然,我们如果想单独知道某一列的数据类型,也可以这么用:

import pandas as pd

# 相对路径
df = pd.read_excel("result_data.xlsx")
print(df['read_num'].dtypes)

# 输出结果
float64

当我们需要转换数据类型的时候,可以使用 astype() 这个方法,在使用的时候讲需要转化的目标类型写在 astype() 后面括号里即可:

import pandas as pd

# 相对路径
df = pd.read_excel("result_data.xlsx")
print(df['fans_num'].astype('float64'))

# 输出结果
0       0.0
1       0.0
2       0.0
3      69.0
4       3.0
       ...
404     0.0
405     1.0
406     0.0
407     1.0
408     8.0
Name: fans_num, Length: 409, dtype: float64

添加索引

有些时候,我们拿到的数据表是没有索引的,如果没有索引, Pandas 会默认的为我们添加从 0 开始的自然数作为行索引。而列索引会默认取第一行。比如我们创建了一个没有表头的 Excel ,如下:

没有表头这样的数据看起来很难懂,我们先导入到 Pandas 中看下效果:

import pandas as pd

df1 = pd.read_excel("demo.xlsx")
print(df1)

# 输出结果
   A1  1001  小红  1000
0  A2  1002  小王  2000
1  A3  1003  小明  3000
2  A4  1004  小朱  4000
3  A5  1005  小黑  5000

这时,我们想给这个数据表加上列索引,这里可以使用 columns ,如下:

import pandas as pd

df1 = pd.read_excel("demo.xlsx")
df1.columns = ['编号', '序号', '姓名', '消费金额']
print(df1)

# 输出结果
   编号    序号  姓名  消费金额
0  A2  1002  小王  2000
1  A3  1003  小明  3000
2  A4  1004  小朱  4000
3  A5  1005  小黑  5000

现在我们有了列索引,但是如果这时我并不想用自动生成的自然数作为行索引,想替换成数据表中的序号,可以怎么做呢?

这里需要使用到的是 set_index() 这个方法,在括号中指明需要使用的列名即可:

import pandas as pd

df1 = pd.read_excel("demo.xlsx")
print(df1.set_index('编号'))

# 输出结果
      序号  姓名  消费金额
编号
A2  1002  小王  2000
A3  1003  小明  3000
A4  1004  小朱  4000
A5  1005  小黑  5000

本篇的内容就到这里结束了,今天的内容有点短,溜了溜了~~

示例代码

老规矩,所有的示例代码都会上传至代码管理仓库 Github 和 Gitee 上,方便大家取用。

示例代码-Github

示例代码-Gitee

原文地址:https://www.cnblogs.com/babycomeon/p/12376001.html

时间: 2024-08-07 14:27:02

小白学 Python 数据分析(9):Pandas (八)数据预处理(2)的相关文章

小白学 Python 数据分析(10):Pandas (九)数据运算

人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):Pandas (二)数据结构 Series 小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame 小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据 小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择 小白学

小白学 Python 数据分析(11):Pandas (十)数据分组

人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):Pandas (二)数据结构 Series 小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame 小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据 小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择 小白学

小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame

在家为国家做贡献太无聊,不如跟我一起学点 Python 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):Pandas (二)数据结构 Series 引言 DataFrame 是由多种类型的列构成的二维标签数据结构. 简单理解是类似于 Excel . SQL 表的结构. DataFrame 是最常用的 Pandas 对象,与 Series 一样,Da

【Python数据分析】pandas时刻数据:Timestamp

目录 1.Timestamp 2.to_datetime 2.1 单个时间转化 2.2 多个时间转化 所谓的时刻数据代表时间点,是pandas的数据类型,是将值与时间点相关联的最基本类型的时间序列数据. 1.Timestamp Timestamp是将数据类型转化为pandas的Timestamp类型 import pandas as pd import datetime date1 = datetime.datetime(2019, 12, 31, 12, 1, 2) # 创建一个datetim

数据分析学习资料《利用Python进行数据分析第2版》+《Python数据分析与挖掘实战》+《从零开始学Python数据分析与挖掘》

数据分析涉及统计学.线性代数.图形分析绘制.数据挖掘等知识,推荐系统学习电子资料<利用Python进行数据分析第2版>.<Python数据分析与挖掘实战>.<从零开始学Python数据分析与挖掘>电子书和代码测试. <利用Python进行数据分析第2版>电子书代码,每一章之间有递进关系,适合在Python入门<Python编程从入门到实践>电子书之后阅读,本专门针对数据分析领域的.我细致地读了一遍,敲了一遍代码,一开始没有头绪,进展缓慢,后来逐渐

小白学 Python 爬虫(42):春节去哪里玩(系列终篇)

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基

Python数据分析、数据采集、数据可视化、图像数据处理分析视频教程

38套大数据,云计算,架构,数据分析师,Hadoop,Spark,Storm,Kafka,人工智能,机器学习,深度学习,项目实战视频教程 视频课程包含: 38套大数据和人工智能精品高级课包含:大数据,云计算,架构,数据挖掘实战,实时推荐系统实战,电视收视率项目实战,实时流统计项目实战,离线电商分析项目实战,Spark大型项目实战用户分析,智能客户系统项目实战,Linux基础,Hadoop,Spark,Storm,Docker,Mapreduce,Kafka,Flume,OpenStack,Hiv

Python 数据分析:Pandas 缺省值的判断

Python 数据分析:Pandas 缺省值的判断 背景 我们从数据库中取出数据存入 Pandas None 转换成 NaN 或 NaT.但是,我们将 Pandas 数据写入数据库时又需要转换成 None,不然就会报错.因此,我们就需要处理 Pandas 的缺省值. 样本数据 id name password sn sex age amount content remark login_date login_at created_at 0 1 123456789.0 NaN NaN NaN 20

小白学 Python(2):基础数据类型(上)

人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基础数据类型.啥?你问我为啥要先了解基础数据类型? 为了你的生命安全,还是乖乖听我 BB 吧,别想那些有的没的. Python 拥有着很多的基础数据类型,那么,什么是数据类型呢? 打开百度,随手一个 Copy: 数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作. 变量是用来存储值的所在处,它们有名字和数据类型.变量的数据类型决定了如何将代表这些值的位存储到计算机