方法有兩個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改爲對應的模塊。或者到正則表達式
搜索一下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結果進行統計。
|
|
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函數:
產生時間序列。