1. 程式人生 > >從零開始學Python學習筆記---之--pandas資料框(1)

從零開始學Python學習筆記---之--pandas資料框(1)

作為從事資料相關工作朋友,平時接觸的更多的可能是一張有板有眼的資料表格,在這裡我們就叫作資料框。在Python中可以通過pandas模組的DataFrame函式構造資料框。

1、資料框的構造
在Python中,可以藉助於列表、元組、字典進行手工構建資料框,我們用例子說明:

通過列表建立資料框

#構造資料框
import pandas as pd
df =pd.DataFrame([[1,2,3],[40,50,60],[12,15,48],[24,56,89]])
print(df)
    0   1   2
0   1   2   3
1  40  50  60
2  12  15  48
3  24  56  89

上面建立資料框沒有變數名稱。那麼該如何建立的時候加上列名稱呢?

#構造資料框
import pandas as pd
df =pd.DataFrame([[1,2,3],[40,50,60],[12,15,48],[24,56,89]],columns=['v1','v2','v3'])
print(df)
  v1  v2  v3
0   1   2   3
1  40  50  60
2  12  15  48
3  24  56  89

就像上面這樣,可以運用DataFrame函式中的columns引數給資料框的每列新增名稱,如果需要給行加上索引名稱,就可以使用index引數。

通過字典建立資料框

#
通過字典建立資料框 df =pd.DataFrame({'id':[1,2,3],'name':['Tom','John','june'],'age':[12,15,48]}) print(df)
   age  id  name
0   12   1   Tom
1   15   2  John
2   48   3  june

2、資料的讀入
在更多的場景下我們是讀取外部資料,然後基於外部資料進行資料分析、視覺化、資料探勘等研究。這裡跟大家介紹一下文字檔案、電子表格和MySQL資料庫的讀取。

文字檔案的讀取
在pandas模組中有read_table和read_csv兩個函式讀取常見的文字檔案,這裡就以txt和csv檔案為例,


#文字檔案讀取
import pandas as pd
books = pd.read_table('book.txt',sep=',',header=None,usecols=[0,1,2],
names=['book_typy','title','ahthor'])
print(books.tail())
圖片來自:http://mp.weixin.qq.com/s/k6T1FIOvKTu4QVfv5Q4lRA

read_tableread_csv兩個函式都可以讀文字檔案資料,區別在於預設的sep引數不一致,read_table預設以製表符Tab鍵為欄位間的間隔符,而read_csv預設以逗號為欄位間的間隔符。

由於原始資料檔案books.txt沒有欄位名稱,故設定header=None,並用names引數給表字段加上名稱,usecols則是設定讀取原始資料的哪些列。

csv檔案讀取

使用read_table函式讀取csv檔案:

#讀取csv檔案
co2 =pd.read_table('co2.csv',sep=',')
print(co2.head(4))

電子表格的讀取

pandas模組中read_excel函式可以非常方便的讀取外部的xls和xlsx電子表格:

#電子表格讀取
iris =pd.read_excel('iris.xlsx')
print(iris.head(4))

MySQL資料庫資料的讀取

使用Python讀取MySQL資料庫,還需要結合pymysql模組一起使用。運用Python與MySQL建立連線,並讀取資料:(本人沒有裝mysql,就不親自實踐了),可以從這裡檢視詳細例子。

3、資料的概覽資訊
外部資料讀取到Python語言中,往往對資料需要做一些大概的瞭解,如最小值、最大值、平均值、各變數都是哪些資料型別、資料量如何等。我們來看看這些問題是如何解決的:

df =pd.DataFrame([[1,2,3],[40,50,60],[12,15,48],[24,56,89]],columns=['v1','v2','v3'])
print(df.shape)
(4, 3)
#變數的列名稱
print(df.columns)
Index(['v1', 'v2', 'v3'], dtype='object')

shape屬性和columns屬性返回資料集的行列數及變數名;

#數值型變數的概覽資訊
print(co2.describe(include=['number']))

#離散型變數的概覽資訊
print(co2.describe(include=['object']))

describe屬性可以對數值型變數(include=['number'])和離散型變數(include=['object'])進行描述性統計;

df =pd.DataFrame({'id':[1,2,3],'name':['Tom','John','june'],'age':[12,15,48]})
print(df.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
age     3 non-null int64
id      3 non-null int64
name    3 non-null object
dtypes: int64(2), object(1)
memory usage: 152.0+ bytes

info屬性則對資料集的變數型別進行簡單的描述

學習地址:http://mp.weixin.qq.com/s/k6T1FIOvKTu4QVfv5Q4lRA

相關推薦

開始Python學習筆記-----pandas資料(1)

作為從事資料相關工作朋友,平時接觸的更多的可能是一張有板有眼的資料表格,在這裡我們就叫作資料框。在Python中可以通過pandas模組的DataFrame函式構造資料框。 1、資料框的構造 在Python中,可以藉助於列表、元組、字典進行手工構建資料框,我們用例子說明:

開始Python學習筆記-----pandas資料(3)

在pandas資料框(2)我們使用pandas模組實現觀測的篩選、變數的重新命名、資料型別的變換、排序、重複觀測的刪除、和資料集的抽樣,這期我們繼續介紹pandas模組的其他新知識點。包括頻數統計、缺失值處理、資料對映、資料彙總。 一、頻數統計 我們以被調查使用者的收入資料

開始Python學習筆記-----pandas序列部分

序列序列(Series)可以理解成是Python中的列表、元組的高階版本。為什麼說是高階版本呢?因為序列一維陣列類似,具有更好的廣播效應,既可以與一個標量進行運算,又可以進行元素級函式的計算。如下例子所示: #列表無法與一個標量進行運算(雖然*不報錯,但是它表示的是重複)

開始Python(四):變數與基本資料型別

上一章我們簡單的瞭解了一下python的程式碼縮排,基礎的輸出語句,多行語句和單行多行註釋,今天我們來了解下python的變數與基本資料型別,讓我們在以後的程式設計中,對各種型別瞭如指掌! 變數的賦值 為了方便給下面各種資料型別做詳解,我們首先學習一下變

開始-Machine Learning學習筆記(8)-指數平滑及python實現

1. 指數平滑的定義及應用場景 ​ 指數平滑由布朗提出、他認為時間序列的態勢具有穩定性或規則性,所以時間序列可被合理地順勢推延;他認為最近的過去態勢,在某種程度上會持續的未來,所以將較大的權數放在最近的資料。指數平滑法是移動平均法中的一種,其特點在於給過去

(補充)趕鴨子上架D3.jsdataenter的(二)---data,datum,update,enter,exit基礎概念(b站開始畫圖表學習筆記,感謝up主睿小狼)

繫結資料D3.js常用的繫結資料的方法有兩種   data和datum從英文單詞角度來說是data的附屬和date的區別與共同點:都是繫結資料集,但是data是將陣列中的每一個元素繫結到svg元素上面,而datum的作用是把陣列本身繫結到每個svg元素上面,簡而言之,data

學習開始Python網絡爬蟲》PDF+源代碼+《精通Scrapy網絡爬蟲》PDF

網站 復雜 精通 nbsp 註釋 mage targe 快速實現 bsp 學習網絡爬蟲,基於python3處理數據,推薦學習《從零開始學Python網絡爬蟲》和《精通Scrapy網絡爬蟲》。 《從零開始學Python網絡爬蟲》是基於Python 3的圖書,代碼挺多,如果是

開始Python學習Episode 13——常用模組

模組   一、time模組 時間戳(timestamp) :時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。 元組(struct_time)   :struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天,夏令時

開始Python學習Episode 15——正則表示式

正則表示式   正則表示式(或 RE)是一種小型的、高度專業化的程式語言,(在Python中)它內嵌在Python中,並通過 re 模組實現,所以使用時要匯入re模組。正則表示式模式被編譯成一系列的位元組碼,然後由用 C 編寫的匹配引擎執行。   先說幾個元字元 &nbs

Python新書推薦《開始Python--資料分析與挖掘》

經過10多個月的努力,《從零開始學Python--資料分析與挖掘》的新書上市啦,在此感謝清華大學出版社對本書提出的寶貴建議,也感謝廣大網友及粉絲對我的期待。本書一共包含16章的內容,涉及四大模組,分別是Python基礎儲備、Python資料運算與整理、Python資料視覺化和Python資料探勘理論

開始Python【2】--數值計算及正則表示式

往期回顧: 從零開始學Python【1】--資料型別及結構 我們接著上一期的Python,繼續跟大家分享有關Python中常用的數值計算和正則表示式。 運算子 1)數值運算 +、-、*、/ % (求餘數) // (注意Python中的整除是

開始Python1】--資料型別及結構

一直想靜下心來、花點時間學習Python3這門火爆的高階語言,但總是事與願違,故只能擠點時間,做到每天進步一點點。從今天開始我把積累的點滴知識與大家做個分享,也歡迎感興趣的朋友指教與提議。 首先從Python的基礎資料型別和資料結構說起,資料型別主要包含三種,分別是數值型、字元型和日

開始多執行緒取消和關閉(六)

小節 為什麼需要取消和關閉: 有時候我們希望在任務或執行緒自然結束之前就停止它們,可能因為使用者取消了操作,或者應用程式需要快速關閉. 取消和關閉的好處: 不會浪費資源執行一些沒用的操作、保證程式的正常退出. Java沒有提供任何機制,來安全地強迫執行緒停止手頭的工作.它提供中斷(執行緒

開始多執行緒執行緒池(五)

單執行緒的缺點&使用多執行緒的好處 圍繞執行任務來管理應用程式時,第一步要指明一個清晰的任務邊界(task boundaries).理想情況下,任務是獨立的活動:它的工作並不依賴於其他任務的狀態、結果或者邊界效應.獨立有利於併發性,如果能得到相應的處理器資源,獨立的任務還可以並行執行.

開始Python學習 知識補充sorted

sorted()方法 sorted()可用於任何一個可迭代物件。 原型為sorted(iterable, cmp=None, key=None, reverse=False)   iterable:一個可迭代物件; cmp:用於比較的函式,比較什麼由key決定; key:用列表元素的某個

開始-Machine Learning學習筆記(25)-整合學習

文章目錄 1. Boosting - AdaBoosting 2. Bagging與隨機森林 2.1 Bagging - 並行式整合學習 2.2 隨機森林 3. 結合策略

開始-Machine Learning學習筆記(24)-貝葉斯分類器

  首先還是先取出周志華先生在《機器學習》貝葉斯分類器一章中對於貝葉斯決策論的定義: 貝葉斯決策論是概率框架下實施決策的基本方法。在分類任務中,在所有相關概率都已知的情況下,貝葉斯決策論考慮的是如何基於這些概率和誤判損失來選擇最優的標記。   基於最小化條件風險,我

開始-Machine Learning學習筆記(26)-聚類

文章目錄 0. 前言 1. 聚類的效能度量和距離計算 1.1 效能度量 1.2 距離計算 2. 原型聚類 2.1 K-means 2.2 學

開始-Machine Learning學習筆記(31)-規則學習

文章目錄 1. 基本概念 2. 序貫覆蓋 3. 剪枝優化 3.1 預剪枝-CN2演算法 3.2 後剪枝-RIPPER演算法 4. 一階規則學習 5. 歸納邏

開始-Machine Learning學習筆記(30)-概率圖模型

文章目錄 1. 隱馬爾可夫模型(Hidden Markov Model,HMM) 2. 馬爾科夫隨機場(Markov Random Field, MRF) 3. 條件隨機場(Conditional Random Field,