小白學 Python 數據分析(9):Pandas (八)數據預處理(2)

人生苦短,我用 Pythonhtml

前文傳送門:python

小白學 Python 數據分析(1):數據分析基礎git

小白學 Python 數據分析(2):Pandas (一)概述github

小白學 Python 數據分析(3):Pandas (二)數據結構 Series數據結構

小白學 Python 數據分析(4):Pandas (三)數據結構 DataFramespa

小白學 Python 數據分析(5):Pandas (四)基礎操做(1)查看數據excel

小白學 Python 數據分析(6):Pandas (五)基礎操做(2)數據選擇code

小白學 Python 數據分析(7):Pandas (六)數據導入orm

小白學 Python 數據分析(8):Pandas (七)數據預處理htm

引言

前一篇文章咱們介紹了數據預處理中數據有問題的幾種狀況以及通常處理辦法。

很常常,當咱們拿到數據的時候,首先須要肯定拿到的是正確類型的數據,若是數據類型不正確,通常經過數據類型的轉化

數據類型轉化

你們應該都知道 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

相關文章
相關標籤/搜索