IT教程 ·

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

C# 小游戏-拼图魔方【Game Puzzle】

 

人生苦短,我用 Python

前文传送门:

弁言

前一篇文章我们引见了数据预处置惩罚中数据有问题的几种状况以及平常处置惩罚要领。

很常常,当我们拿到数据的时刻,起首须要肯定拿到的是准确范例的数据,假如数据范例不准确,平常经由过程数据范例的转化

数据范例转化

人人应当都晓得 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 上,轻易人人取用。

1994_An Algorithm To Reconstruct Wideband Speech From Narrowband Speech Based On Codebook Mapping

参与评论