pandas 模塊學習

pandas模塊

方法有兩個php

1.在windows下安裝pandas,只安裝pandas一個包顯然是不夠的,它並無把用到的相關包都打進去,這點是很麻煩的,只有等錯誤信息出來後才知道少了哪些包。我總結了一下,一共須要安裝以下包:
pyparsing-2.0.2.win32-py2.7.exe
matplotlib-1.3.1.win32-py2.7.exe
openpyxl-openpyxl-5d2c0c874d2.tar.gz
setuptools-3.8.1.win32-py2.7.exe
numpy-MKL-1.8.1.win32-py2.7.exe
six-1.7.3.win32-py2.7exe
python-dateutil-2.2.win32-py2.7.exe

這些安裝包的下載地址是:
https://qa.debian.org/watch/sf.php/matplotlibpython

將最後的matplotlib改爲對應的模塊。或者到正則表達式

http://sourceforge.netsql

搜索一下windows

2.直接使用pip安裝這個包就不用那麼麻煩了,直接輸入pip install pandas就能夠了數組

在pandas中使用Series類的plot畫圖。
若是tz_counts是一個Series類:
1.在python畫圖,須要先導入matplotlib.pyplot:

import matplotlib.pyplot as pltapp

tz_counts[: 10].plot(kind= 'barh' ,rot=0 )函數

plt.show()spa

2.在ipython畫圖須要打開pylab模式:
ipython --pylab
 

DataFrame類:.net

DataFrame有四個重要的屬性:

index:行索引。

columns:列索引。

values:值的二維數組。

name:名字。

這個類是Pandas最重要的類之一。

構建方法,DataFrame(sequence),經過序列構建,序列中的每一個元素是一個字典。
frame=DateFrame構建完以後,假設frame中有'name','age','addr'三個屬性,可使用fame['name']查看屬性列內容,也能夠fame.name這樣直接查看。
frame按照'屬性提取出來的每一個列是一個Series類。
DataFrame類可使用布爾型索引。
groupby(str|array...)函數:可使用frame中對應屬性的str或者和frame行數相同的array做爲參數還可使用一個會返回和frame長度相同list的函數做爲參數,若是使用函數作分組參數,這個用作分組的函數傳入的參數將會是fame的index,參數個數任意。使用了groupby函數以後配合,size()函數就能夠對groupby結果進行統計。
groupby後可使用:
size():就是count
sum():分組求和
apply(func,axis=0):在分組上單獨使用函數func返回frame,不groupby用在DataFrame會默認將func用在每一個列上,若是axis=1表示將func用在行上。

 

reindex(index,column,method):用來從新命名索引,和插值。
size():會返回一個frame,這個frame是groupby後的結果。

sum(n).argsort():若是frame中的值是數字,可使用sum函數計算frame中摸個屬性,各個因子分別求和,並返回一個Series,這個Series能夠作爲frame.take的參數,拿到frame中對應的行。

pivot_table(操做str1,index=str2,columns=str3,aggfunc=str4)透視圖函數:
str1:是給函數str4做爲參數的部分。
str2:是返回frame的行名。
str3:是返回frame的列名。
str4:是集合函數名,有'mean','sum'這些,按照str2,str3分組。
使用透視圖函數以後,可使用.sum()這類型函數,使用後會按照index和columns的分組求和。
order_index(by,ascending):
返回一個根據by排序,asceding=True表示升序,False表示降序的frame
concat(list):將一個列表的frame行數加起來。
ix[index]:就是行索引,DataFrame的普通下標是列索引。
take(index):做用和ix差很少,都是查詢行,可是ix傳入行號,take傳入行索引。
unstack():將行信息變成列信息。
apply(func,axis=0)和applymap(func):apply用在DataFrame會默認將func用在每一個列上,若是axis=1表示將func用在行上。applymap表示func用在每一個元素上。
combine_first(frame2):combine_first會把frame中的空值用frame1中對應位置的數據進行填充。Series方法也有相同的方法。
stack()函數,能夠將DataFrame的列轉化成行,原來的列索引成爲行的層次索引。(stack和unstack方法是兩個互逆的方法,能夠用來進行Series和DataFrame之間的轉換)
duplicated():返回一個布爾型Series,表示各行是否重複。
drop_duplicates():返回一個移除了重複行後的DataFrame
pct_change():Series也有這個函數,這個函數用來計算同colnums兩個相鄰的數字之間的變化率。
corr():計算相關係數矩陣。
cov():計算協方差係數矩陣。
corrwith(Series|list,axis=0):axis=0時計算frame的每列和參數的相關係數。

 

Series類:

兩個重要的屬性:

value:存放series值的一個數組。

index:Series的下標索引。

name:就是Series的名字

index有一個name屬性。

能夠經過Series(list,index=None)的形式來建立一個Series類,index表示的是用下標訪問對應的數據。
也能夠直接使用字典建立Series(dict)
value_counts():該方法能夠用來統計series類中各因子出現的次數,返回一個帶統計結果的series。
fillna(str):給series中的空值賦值。
plot()函數:能夠用來給帶統計結果的函數畫圖。可是要配合matplotlib使用
notnull():返回一個判斷series位置是否空值的布爾型索引。
sum():若是是數字型Series,能夠求和。
cumsum():若是是數字型Series,能夠返回一個累加的Series。
searchsorted():在數字Series中定位一個數字的位置,這個數字不徹底相同,但接近。
map(func):將Series中的元素,每一個都當作func的參數使用一遍,返回執行結果組成的Series
unique():相似於sql中的distinct
isnull()/notnull():返回一個布爾型索引
order():對值進行排序。
order_value():對索引進行排序。
unstack()方法:將Series的層次索引轉換成列索引,變成一個DataFrame。
replace():能夠用list或dict做爲參數,替換須要替換的值
str屬性:Series.str後會將Series單作一個字符串的集合,這個集合可以使用字符串的操做,例如:
data=Series(['abc','bcd','cde'])
data.str[1]
輸出;
1 b
2 c
3 d

read_table()函數:讀dat文件。

import pandas as pd

mnames=['movie_id','title','genres']

movies=pd.read_table(r'C:\Users\Administrator\Desktop\python for data analysis data\pydata-book-master\ch02\movielens\movies.dat',sep='::',header=None,names=mnames)

read_csv()函數:能夠將frame文件直接讀成frame。

movies=pd.read_csv(r'names\job1880.txt',names=column)

read_csv函數有一個sep參數,設置分隔符,能夠給這個參數傳入正則表達式。

skiprows參數,參數是一個list,表示讀取文件的時候,跳過list中的幾行,第一行爲0

read_excel()函數

能夠直接讀取excel文件爲DataFrame

merge(frame1,frame2):

根據兩個frame列的名字自動合併,返回一個frame。

此函數能夠經過on,left_on,right_on三個屬性來設置怎麼frame1和frame2經過什麼屬性來進行鏈接。

concat函數:

能夠將DataFrame或者Series按照axis的方向堆積起來。

cut函數和qcut函數:

能夠將一些離散值分箱,cut函數用的是數值區間將數值分箱,qcut用的是分位數。

cut用在長度相等的桶,qcut用在大小相等的桶。

to_datetime(str):

解析經常使用的時間格式。

date_range函數:

產生時間序列。

相關文章
相關標籤/搜索