专栏名称: 极客挖掘机
高级软件工程师
目录
相关文章推荐
元素和同位素地球化学  ·  《人类简史》人性的底层逻辑及其与文明发展的悖论 ·  15 小时前  
元素和同位素地球化学  ·  《人类简史》人性的底层逻辑及其与文明发展的悖论 ·  15 小时前  
文汇学人  ·  张巍 | 史家修昔底德的“艺术散文” ·  5 天前  
为你读诗  ·  平生不读《道德经》,读书万卷也枉然 ·  3 天前  
为你读诗  ·  中国书法的智慧所在,不止坐落笔端 ·  3 天前  
51好读  ›  专栏  ›  极客挖掘机

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

极客挖掘机  · 掘金  ·  · 2020-02-28 02:25

正文

阅读 13

小白学 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 ,如下:







请到「今天看啥」查看全文