介紹
Python Data Analysis Library 或 pandas 是基于NumPy 的一種工具沟娱,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的拣宰。Pandas 納入了大量庫和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具隔披。pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。你很快就會發(fā)現(xiàn),它是使Python成為強(qiáng)大而高效的數(shù)據(jù)分析環(huán)境的重要因素之一澄耍。
Pandas是python的一個數(shù)據(jù)分析包,最初由AQR Capital Management于2008年4月開發(fā)晌缘,并于2009年底開源出來齐莲,目前由專注于Python數(shù)據(jù)包開發(fā)的PyData開發(fā)team繼續(xù)開發(fā)和維護(hù),屬于PyData項目的一部分枚钓。Pandas最初被作為金融數(shù)據(jù)分析工具而開發(fā)出來铅搓,因此,pandas為時間序列分析提供了很好的支持搀捷。 Pandas的名稱來自于面板數(shù)據(jù)(panel data)和python數(shù)據(jù)分析(data analysis)星掰。panel data是經(jīng)濟(jì)學(xué)中關(guān)于多維數(shù)據(jù)集的一個術(shù)語多望,在Pandas中也提供了panel的數(shù)據(jù)類型。
數(shù)據(jù)類型
Series:一維數(shù)組氢烘,與Numpy中的一維array類似怀偷。二者與Python基本的數(shù)據(jù)結(jié)構(gòu)List也很相近,其區(qū)別是:List中的元素可以是不同的數(shù)據(jù)類型播玖,而Array和Series中則只允許存儲相同的數(shù)據(jù)類型椎工,這樣可以更有效的使用內(nèi)存,提高運算效率蜀踏。
Time- Series:以時間為索引的Series维蒙。
DataFrame:二維的表格型數(shù)據(jù)結(jié)構(gòu)。很多功能與R中的data.frame類似果覆÷可以將DataFrame理解為Series的容器。以下的內(nèi)容主要以DataFrame為主局待。
Panel :三維的數(shù)組斑响,可以理解為DataFrame的容器。
放一下Series的事例代碼
# -*- coding: utf-8 -*-
frompandasimportSeries
print'用數(shù)組生成Series'
obj = Series([4,7, -5,3])
printobj
printobj.values
printobj.index
print'指定Series的index'
obj2 = Series([4,7, -5,3],index= ['d','b','a','c'])
printobj2
printobj2.index
printobj2['a']
obj2['d'] =6
printobj2[['c','a','d']]
printobj2[obj2 >0]# 找出大于0的元素
print'b'inobj2# 判斷索引是否存在
print'e'inobj2
print'使用字典生成Series'
sdata = {'Ohio':45000,'Texas':71000,'Oregon':16000,'Utah':5000}
obj3 = Series(sdata)
printobj3
print'使用字典生成Series钳榨,并額外指定index舰罚,不匹配部分為NaN。'
states = ['California','Ohio','Oregon','Texas']
obj4 = Series(sdata,index= states)
printobj4
print'Series相加薛耻,相同索引部分相加营罢。'
printobj3 + obj4
print'指定Series及其索引的名字'
obj4.name ='population'
obj4.index.name ='state'
printobj4
print'替換index'
obj.index = ['Bob','Steve','Jeff','Ryan']
printobj