人生苦短,我用 Pythonpython
前文傳送門:git
小白學 Python 數據分析(1):數據分析基礎github
小白學 Python 數據分析(2):Pandas (一)概述數據結構
小白學 Python 數據分析(3):Pandas (二)數據結構 Seriesspa
小白學 Python 數據分析(4):Pandas (三)數據結構 DataFrameexcel
小白學 Python 數據分析(5):Pandas (四)基礎操做(1)查看數據code
小白學 Python 數據分析(6):Pandas (五)基礎操做(2)數據選擇orm
小白學 Python 數據分析(7):Pandas (六)數據導入cdn
小白學 Python 數據分析(8):Pandas (七)數據預處理blog
前一篇文章咱們介紹了數據預處理中數據有問題的幾種狀況以及通常處理辦法。
很常常,當咱們拿到數據的時候,首先須要肯定拿到的是正確類型的數據,若是數據類型不正確,通常經過數據類型的轉化
你們應該都知道 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 上,方便你們取用。