mysql 數據分析的步驟_數據分析8個主要步驟

# 在對數據進行分析時,主要細分為明確目標、應用思維和如下8個具體步驟:

1、讀取數據

2、清洗數據

3、操作數據

4、轉換數據

5、整理數據

6、分析數據

7、展現數據

8、總結報告

接下來將介紹使用python來具體處理數據,包括上面幾個步驟的實現,以及給出具體的操作例子。

需要記住的是使用python處理數據所用到的 具體函數、方法。

#一、python讀取數據

''''''

1、簡要

2、如何從Excel文件中讀取數據

3、如何從MySQL數據庫中讀取數據

4、如何從網頁中讀取數據

''''''

1、簡要

讀取數據時數據分析的第一步,相對來說比較簡單,讀取數據類型可以大致分為幾類,一般用到的都是從 excel表、數據庫、網頁中進行讀取。

我們使用python中的pandas庫來實現讀取操作。

2、如何從Excel文件中讀取數據

Python代碼如下:

讀取數據之前需要導入pandas庫

#導入pandas庫

import pandas as pd

#導入Excel文件

df = pd.read_excel('文件名.xlsx')

3、如何從MySQL數據庫中讀取數據

讀取數據之前需要安裝pymysql模塊

# 安裝pymysql模塊(在終端操作)

pip install pymysql

#安裝后,讀取操作代碼如下:

import pandas as pd

import pymysql

# 創建數據庫連接

conn = pymysql.connect(host='', user='', passwd='', database='')

# 創建游標

cursor = conn.cursor()

# 寫SQL語句

sql = "select * from 表名"

#讀取數據

df = pd.read_sql(sql,conn)

df.head()

# 關閉游標

cursor.close()

# 關閉連接

conn.close()

4、如何從網頁中讀取數據

訪問網頁時需要用到ssl模塊,解決證書不受信任問題

import ssl

ssl._create_default_https_context = ssl._create_unverified_context

# 網址

url = 'http://s.askci.com/stock/a/?reportTime=2019-03-31&pageNum=1'

#讀取網頁中表格數據

dfs = pd.read_html(url)

#二、python清洗數據

'''

1、如何查找異常

2、如何排除重復

3、如何刪除缺失

4、如何補全缺失

5、應用案例

'''

下面使用待清洗的撲克牌作為示例,來完成以上操作。

import numpy as np

import andas as pd

pd.set_option('max_rows',10)

df = df.read_excel("待清洗的撲克牌.xlsx")

df

返回結果如下:

bff7e14a0418de198398fa04d0b2cc6e.png

41215e0109e7b1aefe4f158ae6341f8a.png

1、如何查找異常

在清洗數據之前需要把異常的數據查找出來,觀察異常數據特征,然后確定清洗方法。

一般查找數據異常方式:

查找某一列缺失

查找重復的行列

查找某一列的唯一值

#查找花色缺失的行

df[df.花色.isnull()]

d72bf5e22c0f2bc6d8b0612bc792707e.png

# 查找完全重復的行

df[df.duplicated()]

55e98f5b5239b1c0e1088deec48bc262.png

# 查找某一列重復的行

df[df.編號.duplicated()]

6d6b8ae67bd7510a9ec27ac1d12bcd62.png

#查找牌面所有唯一值

df.牌面.unique()

返回結果如下:

a6ec84cc02611b130aa020da37b0444a.png

根據常識可以得出,'30'為異常值。

#查找牌面包含30的異常值

df[df.牌面.isin(['30'])]

8cf2d95d6897482eaef341e48c0df90e.png

2、如何排除重復

使用drop_duplicates()函數,在排除重復后會得到新的返回值。

#排除完全重復的行,默認保留第一行

df.drop_duplicates()

189dcadd9481e757ddbe3623ab6ceb38.png

# 按照莫一列排除重復,默認保留第一行

df.drop_duplicates(['花色'])

# 按照莫一列排除重復,默認保留最后一行

df.drop_duplicates(['花色'],keep = 'last')

3、如何刪除缺失

使用dropna()默認刪除包含缺失的行

使用撲克牌中不重復的花色為例

color =??df.drop_duplicates(['花色'])

dcb9196aee5ab6fed6640724217866ab.png

#刪除花色缺失的行

color.dropna()

#刪除整行全部為空的行,需要指定how參數

color.dropna(how='all')

#刪除包含缺失值的列

color.dropna(axis = 1)

4、如何補全缺失

# 使用fillna()函數可以將缺失值填充成制定的值。

color.fillna('joker')

c8c01fbfbd4e60295f8d9849e6673c28.png

# 使用臨近值填充需要指定method參數

#用后面的值填充

color.fillna(method= 'bfill')

3cd81930f791e5285c18f1dcebd99eb7.png

# 按字典填充

# 先制定一個缺失值

color.loc[2,'牌面'] = np.nan

color

1f6399ca71751841c634b66215394de2.png

7251a7e071e1f22a8c2348b03057ae8d.png

#按列自定義補全缺失值

color.fillna({'花色':0,'牌面':1})

d8cebda50c3aa9a048ee2688f7a256f6.png

5、應用案例

import numpy as np

import pandas as pd

# 設置最多顯示10行

pd.set_option('max_rows',10)

#從Excel文件中讀取原始數據

df = pd.read_excel('待清洗的撲克牌'.xlsx)

#補全缺失值

df = pd.fillna('joker')

#排除重復值

df = pd.drop_duplicates()

# 修改異常值

df.loc[4,'牌面'] = 3

# 增加一張缺少的牌

df = df.append({'編號':4,'花色':'黑桃?','牌面':2},ignore_index = True)

#按編號排序

df = df.sort_values('編號')

# 重置索引

df = df.reset_index()

# 刪除多余的列

df = df.drop(['index'],axis = 1)

#清洗好的數據保存到excel文件中

df.to_excel('清洗好的撲克牌'.xlsx,index = False)

df

9fb109e99509bde0f1a7f528e680a1b6.png

上圖為完整的撲克牌數據。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396507.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396507.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396507.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python學習的一個定位_python學習之——selenium元素定位

web自動化測試按步驟拆分,可以分為四步操作:定位元素,操作元素,獲取返回結果,斷言(返回結果與期望結果是否一致),最后自動出測試報告。其中定位元素尤為關鍵,此篇是使用webdriver通過頁面各個元…

Invoker

Invoker 是實體,dubbo外其他對象的轉化。轉載于:https://www.cnblogs.com/gtaxmjld/p/9786894.html

如何在開源社區貢獻代碼_如何在15分鐘內從瀏覽器獲得您的第一個開源貢獻

如何在開源社區貢獻代碼Matt Mullenweg, founder of Automattic, recently offered this advice to aspiring developers: “Contribute to open source.”Automattic的創始人Matt Mullenweg最近向有抱負的開發人員提供了以下建議 :“ 致力于開源。 ” Mullenweg —…

小心情。

從一開始學習html到現在的nodejs,也有段時間了,那個時候什么都不知道,記得一兩年之前還沉迷在一些網絡技術的圈子里面,每天看著那些大牛,感覺都很是厲害,每一項技術總是那樣的讓我著迷,從易語言…

一、win7下安裝yii2

作者:PHP學習網 出處:http://www.viphper.com/?p1159 本文版權歸作者,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 之前在liunx上安裝過yii…

js獲取瀏覽器滾動條距離頂端的距離

js獲取瀏覽器滾動條距離頂端的距離 一、jQuery獲取的相關方法 jquery 獲取滾動條高度獲取瀏覽器顯示區域的高度 :$(window).height(); 獲取瀏覽器顯示區域的寬度 :$(window).width(); 獲取頁面的文檔高度 :$(document).height(); 獲取頁面的文…

vs dll必須和exe在同一個目錄_Win10系統丟失 .dll 文件的三種解決方案教程

有時候開機或打開一個軟件時,系統會提示無法啟動程序,這是怎么回事呢?這是因為計算機丟失某個或某些dll文件,由于系統本身不存在這些運行庫文件,需要進行添加才能使用該軟件。方法一:下載丟失的.dll文件&am…

datagrid頁面獲取表單一條數據的例子

【問題背景】 最近在做ITOO考評的時候想從頁面獲取表單選中的數據: 【代碼】 在數據網格(datagrid)組件包含兩種方法來檢索選中行數據: getSelected:取得第一個選中行數據,如果沒有選中行,則返回…

utf-8轉換gbk代碼_將代碼轉換為現金-如何以Web開發人員的身份賺錢并講述故事。...

utf-8轉換gbk代碼by Kurt由庫爾特 將代碼轉換為現金-如何以Web開發人員的身份賺錢并講述故事。 (Turning code to cash — How to make money as a Web Developer and live to tell the tale.) So you just learnt to code. You’re eager and anyone who can’t code thinks …

Spring+SpringMVC+MyBatis+easyUI整合基礎篇(十)SVN搭建

前言 前面一篇文章講了一下版本控制,但其實這一篇并沒有打算講細節的,感覺應該自己去動手弄一下,后來考慮了一下,版本控制真的挺重要的,如果自己實在搭建不好反而不去使用的話,真的有點可惜,當然…

AHK-UMSS框架 (AHK通用修飾鍵解決方案,任何鍵都是修飾鍵)

AHK-UMSS框架 (AHK通用修飾鍵解決方案,任何鍵都是修飾鍵) 1 #Warn2 #NoEnv ; # 禁用環境變量檢查:不檢查空變量是否為"環境變量",可以極大地提高效率3 #Hotstring EndChars ◎ ; # 熱字串終止符號設置:只把空格作為終止符,(文檔上所說是不能單獨用空格的…

flask-sqlalchemy mysql_Flask SQLAlchemy連接到MySQL數據庫

設置代碼:我正在構建一個帶有AngularJS前端的基本Flask應用程序,目前我需要連接到我用Godaddy phpmyadmin托管的MySQL數據庫。這是我的一部分__init__.pyfrom flask import Flaskfrom flask.ext.sqlalchemy import SQLAlchemy# Create instnace called a…

有沒有編碼的知識圖譜_沒有人告訴您關于學習編碼的知識-以及為什么如此困難...

有沒有編碼的知識圖譜by Joyce Akiko通過喬伊斯明子 沒有人告訴您關于學習編碼的知識-以及為什么如此困難 (What Nobody Tells You About Learning To Code — And Why That Makes It So Hard) Are you familiar with the article Why Learning to Code is So Damn Hard?您是…

Node.js之HTPP URL

幾乎每門編程語言都會包括網絡這塊,Node.js也不例外。今天主要是熟悉下Node.js中HTTP服務。其實HTTP模塊是相當低層次的,它不提供路由、cookie、緩存等,像Web開發中不會直接使用,但還是要熟悉下,這樣也方便以后的學習。 一、統一資源標識符URL 這個是非常…

串口數據波形顯示_【專題教程第6期】SEGGER的J-Scope波形上位機軟件,RTT模式波形上傳可飆到500KB/S...

【專題教程第6期】SEGGER的J-Scope波形上位機軟件,RTT模式波形上傳速度可狂飆到500KB/S左右說明:1、在實際項目中,很多時候,我們需要將傳感器或者ADC的數值以波形的形式顯示。通常的解決辦法是用串口上位機,USB接口上位…

JavaScript-基礎入門.0014.JavaScript內置對象

2019獨角獸企業重金招聘Python工程師標準>>> 簡單介紹: 說明: 內置對象就是不依賴宿主環境在程序執行之前已經存在的對象,不必顯式的實例化內置對象,前面已經介紹了大部分內置對象,而Global和Math兩個單體內置對象比較特殊,所以單獨講. Global對象: 說明: Js中不屬于…

Java中字符串連接符(+)和append的區別

參考鏈接:https://www.jianshu.com/p/849f1d443b3a 文章結構: 第一部分:對的原理進行分析 第二部分: 和 append 循環對比(貼出代碼,以及分別循環后的反編譯字節碼,來對兩者進行對比)…

百度seo排名點擊器_SEO整站優化思路 - 百度seo排名點擊

原出處:超級排名系統原文鏈接:SEO整站優化思路 - 超級排名系統整站優化的大體思路包括哪些?下面超級排名系統小編詳細給大家講解下:一、建站優化我們在建立網站之前與建立網站的時候需要做的優化,包括標題優化、描述關…

unity 天空盒_Unity自定義可編程渲染管線(SRP)(二)——編寫第一個自定義SRP

一句話描述,我們可以把SRP分解成兩個部分,分別是SRP Asset,SRP Instance。SRP AssetSRP Asset是一個Unity Asset文件,用來存儲渲染管線的特定配置信息,包含的信息有:游戲物體是否應該投射陰影;使…

構建node.js基礎鏡像_在Android上構建Node.js應用程序

構建node.js基礎鏡像by Aurlien Giraud通過AurlienGiraud 在Android上構建Node.js應用程序 (Building a Node.js application on Android) 第2部分:Express和NeDB (Part 2: Express and NeDB) In Part 1 we saw how to use Termux, a Terminal emulator and Linux …