保姆級Pandas教程-從零開始實踐數據挖掘和數據分析1

2020-11-20 弗裡曼的小夥伴

目錄

1 概述. 2

2 數據結構:series和dataframe 3

3 數據取值. 4

4 數據操作. 8

5 結構調整. 17

6 統計函數. 19

7 相互關係. 21

8 文件讀取. 22

9 數據集操作. 25

10 字符串操作. 28

11 繪圖matplot 30

12 時間序列處理. 37

—————我是分割線—————

1 概述

NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,主要用於數組運算。支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。

pandas 是基於NumPy 的一種工具,該工具是為了解決數據分析任務而創建的,,提供了高效地操作大型數據集所需的工具。pandas提供了大量能使我們快速便捷地處理數據的函數和方法。你很快就會發現,它是使Python成為強大而高效的數據分析環境的重要因素之一。

1.1 安裝

python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose

2 數據結構:series和dataframe



Series:一維數組。

DataFrame:二維數組。

Panel:三維數組。

2.1 創建:pd.series(values,index),values是數據,可以是列表、數組、字典等;index默認是range(0,len)。自動增加索引和排序。

pd.DataFrame(values,index,columns)

2.2 查看數據:head(),tail()

2.3 加載和保存:支持execl,csv,sql,hdf等格式。

加載:read,保存:to。

2.3.1 讀取csv

def load_csv_app(filename):

"""

日誌格式:time type [uri] - ==> Preparing: SQL

2019-11-05 15:38:00,200 DEBUG [framework.system.dao.RoleDao.findList] - ==> Preparing: SELECT a.id, a.office_id AS "office.id", a.name, a.enname, a.func_type, a.data_type, a.remarks, a.create_by AS "createBy.id", a.create_date, a.update_by AS "updateBy.id", a.update_date, a.del_flag, o.name AS "office.name", o.zzjgdm, a.state_flag , ro.office_id AS "officeList.id" FROM sys_role a LEFT JOIN sys_office o ON o.id = a.office_id LEFT JOIN sys_role_user ur ON ur.role_id = a.id LEFT JOIN sys_user u ON u.id = ur.user_id LEFT JOIN sys_role_office ro ON ro.role_id = a.id WHERE a.del_flag = ? AND a.state_flag=? AND u.id = ? AND u.login_name = ? ORDER BY o.sort, a.name


"""

df = pd.read_csv(

filename,

sep='Preparing: ',

engine='python',

na_values='-',

header=None,

usecols=[0,1],

names=['info', 'sql'],

converters={

'info': parse_info,

'sql': parse_sql

}

)


return df

2.4 子集:at/iat[行序號,列序號],loc/iloc[行序號:行序號,列序號:列序號]

2.5 分組:groupby

2.6 增加新數據行

x = pd.DataFrame()

event = {}

event['a'] = 2

event['b'] = 3

x = x.append(event,ignore_index=True)

3 數據取值

數據取值按照行、列索引的原則分別取值

3.1 刪除指定索引值的數據:drop



3.2 取行值,列值:索引或loc,iloc,ix;取行列值的ix方式已廢棄,使用loc,iloc替代。


3.3 元素存取:iat,at(替代原get_value,set_value)



3.4 條件取值,bool矩陣取值:按照指定的條件或矩陣選擇數據



3.5 mysql操作:sqlalchemy

pandas使用sqlalchemy、pymysql操作mysql資料庫。

pymysql:實現Python能夠操作MySQL資料庫。

sqlalchemy:實現與不同資料庫的連接。當前的推薦用法。

創建連接:create_engine()

pandas讀取數據:read_sql_query()函數實現了對資料庫的查詢。

pandas寫入數據:to_sql()函數實現了對資料庫的寫入。


1) 安裝

pip install pandas

pip install sqlalchemy

pip install pymysql

2) 連接

import pandas as pd

from sqlalchemy import create_engine

# 初始化資料庫連接

# 按實際情況依次填寫MySQL的用戶名、密碼、IP位址、埠、資料庫名

engine = create_engine('mysql+pymysql://root:12345678@localhost:3306/testdb')

# 如果覺得上方代碼不夠優雅也可以按下面的格式填寫

# engine = create_engine("mysql+pymysql://{}:{}@{}:{}/{}".format('root', '12345678', 'localhost', '3306', 'testdb'))

3) 取值

# MySQL導入DataFrame

# 填寫自己所需的SQL語句,可以是複雜的查詢語句

sql_query = 'select * from product;'

# 使用pandas的read_sql_query函數執行SQL語句,並存入DataFrame

df_read = pd.read_sql_query(sql_query, engine)

print(df_read)

4) 寫入磁碟

df_read.to_csv('story3.csv', encoding = 'utf-8', index = False)

5) 寫入資料庫

# DataFrame寫入MySQL

# 新建DataFrame

df_write = pd.DataFrame({'id': [10, 27, 34, 46], 'name': ['張三', '李四', '王五', '趙六'], 'score': [80, 75, 56, 99]})

# 將df儲存為MySQL中的表,不儲存index列

df_write.to_sql('testdf', engine, index=False)

相關焦點

  • 保姆級Pandas教程-從零開始實踐數據挖掘和數據分析4
    8 文件讀取8.1 文件格式:支持csv,剪貼板,表格(\t分隔),fwf(固定寬度)等。8.4 Json處理:import json8.5 Xml,html:from lxml.html import parseFrom urllib2 import urlopen二進位數據
  • 保姆級Pandas教程-從零開始實踐數據挖掘和數據分析5
    目錄1 概述. 22 數據結構:series和dataframe 33 數據取值. 44 數據操作. 85 結構調整. 176 統計函數. 197 相互關係. 218 文件讀取. 229 數據集操作. 25
  • 保姆級Pandas教程-從零開始實踐數據挖掘和數據分析3
    目錄1 概述. 22 數據結構:series和dataframe 33 數據取值. 44 數據操作. 85 結構調整. 176 統計函數. 197 相互關係. 218 文件讀取. 229 數據集操作. 2510 字符串操作. 2811 繪圖matplot 3012 時間序列處理. 37—————我是分割線—————5 結構調整5.1 行列數調整reshape
  • 保姆級Pandas教程-從零開始實踐數據挖掘和數據分析6
    目錄1 概述. 22 數據結構:series和dataframe 33 數據取值. 44 數據操作. 85 結構調整. 176 統計函數. 197 相互關係. 218 文件讀取. 229 數據集操作. 2510 字符串操作. 28
  • 保姆級Pandas教程-從零開始實踐數據挖掘和數據分析7
    12 時間序列處理12.1 時間處理概述12.1.1 處理內容:時間戳,時間點,時間間隔,時間計算12.1.2 時間差:timedelta12.1.3tz_convert12.1.412.4 數據列按時間軸遷移或後移
  • 保姆級Pandas教程-從零開始實踐數據挖掘和數據分析2
    目錄1 概述. 22 數據結構:series和dataframe 33 數據取值. 44 數據操作. 85 結構調整. 176 統計函數. 197 相互關係. 218 文件讀取. 229 數據集操作. 2510 字符串操作
  • 「大數據分析」深入淺出:如何從零開始學習大數據分析與挖掘
    最近有很多人想學習大數據,但不知道怎麼入手,從哪裡開始學習,需要學習哪些東西?對於一個初學者,學習大數據分析與挖掘的思路邏輯是什麼?本文就梳理了如何從0開始學習大數據挖掘分析,學習的步驟思路,可以給大家一個學習的建議。
  • Python數據分析:pandas讀取和寫入數據
    我的公眾號是關於自己在數據分析/挖掘學習過程中的一些技術和總結分享,文章會持續更新......繼續深入學習pandas相關操作,數據讀取寫入、分組、合併,轉換等等。前面一篇文章裡已經寫了關於描述性統計以及常用的基本操作。接下來的一段時間裡,我將陸續地去掌握並輸出。這篇文章是關於數據讀取與寫入的知識點。
  • 數據科學|「pandas實戰教程」電子書正式上線啦
    如何快速學習掌握Pandas的使用技巧,《「pandas實戰教程」電子書》用開源免費的方式帶你從數據分析小白進階為Pandas能手。《「pandas實戰教程」電子書》匯集了數據科學社區人員和熱心技術大佬的智慧,歷時兩年,整理了pandas的一些基本技能和實用技巧,用開源書籍的形式推動數據分析技能的普及,為勵志成為數據分析師的你鋪路搭橋。
  • Python數據分析之pandas數據讀寫
    引言我們現在已經基本熟悉了pandas庫以及它所提供的用於數據分析的基礎功能,也知道了DataFrame和Series是這個庫的核心,數據處理、計算和分析都是圍繞他們展開的。實際上正如後面會講到的,即使在這個階段,你也可以對數據做一定處理,以為接下來對數據做進一步分析做好準備。因此,數據讀寫對數據分析很重要,於是pandas庫必須得為此提供專門的工具——一組被稱為I/O API的函數。這些函數分為完全對稱的兩大類:讀取函數和寫入函數。CSV和文本文件多年以來,人們已習慣於文本文件的讀寫,特別是列表形式的數據。
  • 數據分析基礎入門課程
    >01介紹這個數據分析基礎入門課程的目標是為你提供一些電商和流量挖掘具體的例子,讓你可以開始使用你學完之後也可以和我一樣去發現和挖掘商機,對電商產品進行分析挖掘,並且找到搜索流量的入口,將流量引入到你的個人池子中。
  • pandas創始人手把手教你利用Python進行數據分析
    一些想要學習Python的計算機人員,他們工作較忙,沒有太多時間通過網際網路去系統學習Python數據技術用Python進行數據分析是最基本的基本功,除了網際網路,現在各家投行、諮詢公司、銀行都要求員工會用Python進行數據分析不管是用excel還是用Python, 數據分析過程都遵循一樣的套路。
  • python數據分析之pandas(二)
    在python數據分析之pandas庫基礎用法(一)數據讀取(read_csv)文章中我們已經學會了用pandas讀取csv文件和索引取數的技巧,在這篇文章中我們來學習如何預處理數據及pandas自定義函數。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    ,然後再根據自 己的需求和規劃選擇學習其他方向課程,學完後一定要多實踐 總目錄 零基礎全能篇(4套課程) 實用編程技巧進價(1套課程) 數據分析與挖掘(8套課程) 辦公自動化(3套課程) 機器學習與人工智慧(7套課程) 開發實戰篇(4套課程) 量化投資(2套課程) 網絡爬蟲(
  • 思考python數據分析工具pandas-1簡介
    無論是分析大量數據、呈現數據,還是對數據進行歸一化處理並重新存儲,pandas都有廣泛的功能支持大數據需求。雖然pandas並不是目前性能最強的選擇,但它是用Python編寫的,所以對於初學者來說,它很容易學習,編寫速度快,而且有豐富的API。
  • 思考python數據分析工具pandas-1簡介
    無論是分析大量數據、呈現數據,還是對數據進行歸一化處理並重新存儲,pandas都有廣泛的功能支持大數據需求。雖然pandas並不是目前性能最強的選擇,但它是用Python編寫的,所以對於初學者來說,它很容易學習,編寫速度快,而且有豐富的API。關於pandaspandas 是用 Python 處理大數據集的常用包。
  • 懂Excel就能輕鬆入門Python數據分析包pandas(十三):合併單元格
    經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas前言做數據分析時,當你拿到一份 Excel 數據之後,我相信你還沒有看數據,心就已經涼了一半。這是因為大概率數據格式"好看不好算",今天來看看怎麼解決報表格式常見的合併單元格問題。案例1今天你接到一個分析需求,需要統計2年內個城市月度平均銷量。
  • 教程| pandas輕鬆入門 之 數據結構介紹 1
    訪問flyai.club,一鍵創建你的人工智慧項目Pandas含有使數據清洗和分析工作變得更快更簡單的數據結構和操作工具。pandas經常和其它工具一同使用,如數值計算工具NumPy和SciPy,分析庫statsmodels和scikit-learn,和數據可視化庫matplotlib。
  • 未明學院:7張思維導圖掌握數據分析關鍵庫pandas
    原創: 未明學院Pandas是一個強大的分析結構化數據的工具集;它基於numpy,用於數據分析和數據挖掘,同時也提供數據清洗功能。pandas與numpy一起構成了數據分析的基礎雙生庫。今天小明邀請了未明的王老師,給大家總結了pandas的核心知識,主要包括以下幾個方面。pandas核心知識01、首先我們來認識一下pandas的一些基本概念。pandas概述02在使用pandas做數據分析的時候往往第一步就是將數據導入進來,比如csv或者excel格式的數據,下面這張圖就是我們讀取數據時候的方法和參數。
  • 為什麼要學習pandas來處理分析數據?
    1、代碼級別自動化流程從數據分析角度來說,爬蟲只是第一步,也就是數據獲取。獲取數據後,需要進行探索性分析,也就是EDA操作,接著是數據清洗、分析、呈現。pandas可以自由地處理數據,接口豐富、函數眾多,滿足各種算法的實現。