Python學(xué)習(xí)筆記---pandas入門

from pandas import Series,DataFrame
import pandas as pd

數(shù)據(jù)結(jié)構(gòu)

☆Series
最重要功能是在算數(shù)運算中會自動對齊不同索引的數(shù)據(jù)
data = Series(l,index=([])) #l可為列表毕骡,若不指定index洁灵,默認0-(len(l)-1);也可為字典,index自動有序排列,不指定index,則索引為key,第二列為value倒彰,指定索引后,會返回匹配上的對莱睁,沒有匹配上的索引后是NaN
Series的屬性:
data.values #第二列
data.index #第一列待讳,可通過賦值方式就地修改
data.name #指定后出現(xiàn)在最后一行
data.index.name #指定后出現(xiàn)在第一行
Series的方法:
data.isnull() #是否為缺失值芒澜,返回布爾值
☆DataFrame
可看做共用一組索引的的Series組成的字典
frame = DataFrame(data,columns=[])#data可為字典,后者指定列的排列順序
frame['col'];frame.col
frame.columns#列名屬性
del frame['']#刪除列
frame.index.name= ;frame.columns.name= ;frame.values
data還可以是嵌套字典创淡,外層字典的鍵為列痴晦,內(nèi)層的鍵作為行索引
☆索引對象
Index對象不可修改

基本功能

☆重新索引
obj.reindex(data,method='ffill')#ffill前向值填充,bfill后向值填充琳彩,還可以直接定義值fill_value=xxx
☆丟棄指定軸上的項
frame.drop('');frame.drop([,],axis=1)#默認丟棄行誊酌,可以指定軸
☆索引、選取和過濾
索引
可根據(jù)index或序號索引

In [14]: data = DataFrame(np.arange(16).reshape((4,4)),index = ['Ohio','Colorado','Utah','New York'],columns=['one','two','three','four'])

In [15]: data
Out[15]:
          one  two  three  four
Ohio        0    1      2     3
Colorado    4    5      6     7
Utah        8    9     10    11
New York   12   13     14    15

In [16]: data[1:3]
Out[16]:
          one  two  three  four
Colorado    4    5      6     7
Utah        8    9     10    11

In [17]: data['Colorado':'New York']#利用標(biāo)簽的切片運算與普通的Python切片運算不同露乏,其末端是包含的
Out[17]:
          one  two  three  four
Colorado    4    5      6     7
Utah        8    9     10    11
New York   12   13     14    15

loc——通過行標(biāo)簽索引行數(shù)據(jù)
iloc——通過行號索引行數(shù)據(jù)
ix——通過行標(biāo)簽或者行號索引行數(shù)據(jù)(基于loc和iloc 的混合)
同理碧浊,索引列數(shù)據(jù)也是如此!

In [48]:  data.loc[:,'two':'three']
Out[48]:
          two  three
Ohio        1      2
Colorado    5      6
Utah        9     10
New York   13     14

In [49]:  data.iloc[:,1:2]
Out[49]:
          two
Ohio        1
Colorado    5
Utah        9
New York   13

In [43]: data.loc['Ohio':'Utah']
Out[43]:
          one  two  three  four
Ohio        0    1      2     3
Colorado    4    5      6     7
Utah        8    9     10    11

In [44]: data.iloc[0:2]
Out[44]:
          one  two  three  four
Ohio        0    1      2     3
Colorado    4    5      6     7

算術(shù)運算方法
.add()
.sub()
.div()
.mul()

默認情況下瘟仿,DataFrame和Series之間的算術(shù)運算會將Series的索引匹配到DataFrame的列箱锐,然后沿著行一直向下廣播
如果希望匹配行并在列上廣播,則必須使用算術(shù)運算方法劳较。

排序和排名
Series
按索引排序:obj.sort_index()
按值排序:obj.order()
DataFrame
按索引排序:obj.sort_index(axis=0,ascending=False)
按值排序:obj.sort_index(by='')#列名驹止,根據(jù)該列的值排序

匯總和計算描述統(tǒng)計

Series的corr方法用于計算兩個Series中重疊的,非NA的观蜗,按索引對齊的值的相關(guān)系數(shù)臊恋。
s1.corr(s2)
DataFrame的corr方法將以DataFrame的形式返回完整的相關(guān)系數(shù)矩陣
df.corr()
利用DataFrame的corrwith方法,你可以計算其列或行跟另一個Series或DataFrame之間的相關(guān)系數(shù)
df1.corrwith(df2)#默認按列

處理缺失數(shù)據(jù)

NA處理方法np.nan
dropna
fillna
isnull
notnull

In [87]: df = DataFrame(np.random.randn(7,3))

In [89]: df.ix[:4,1]=np.nan
In [90]: df.ix[:2,2]=np.nan

In [91]: df
Out[91]:
          0         1         2
0  0.396967       NaN       NaN
1  0.046879       NaN       NaN
2 -0.659653       NaN       NaN
3 -0.567351       NaN -1.396844
4  0.493285       NaN -1.226272
5  1.248757  1.182155  1.816061
6 -0.551892 -0.256985  0.758178

In [92]: df.dropna()#默認只要含NA就丟棄
Out[92]:
          0         1         2
5  1.248757  1.182155  1.816061
6 -0.551892 -0.256985  0.758178

In [93]: df.dropna(how='all')#用how全部為NA的才丟棄
Out[93]:
          0         1         2
0  0.396967       NaN       NaN
1  0.046879       NaN       NaN
2 -0.659653       NaN       NaN
3 -0.567351       NaN -1.396844
4  0.493285       NaN -1.226272
5  1.248757  1.182155  1.816061
6 -0.551892 -0.256985  0.758178

In [95]: df.dropna(thresh=2)#丟棄非NA數(shù)小于2的
Out[95]:
          0         1         2
3 -0.567351       NaN -1.396844
4  0.493285       NaN -1.226272
5  1.248757  1.182155  1.816061
6 -0.551892 -0.256985  0.758178

填充缺失數(shù)據(jù)
_=df.fillna(x,inplace=True)
df.fillna(method='ffill',limit=2)#limit是向前向后可以連續(xù)填充的最大數(shù)量

層次化索引

data = Dataframe(data,index=[[],[]],columns=[[],[]])#MultiIndex

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嫂便,一起剝皮案震驚了整個濱河市捞镰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌毙替,老刑警劉巖岸售,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異厂画,居然都是意外死亡凸丸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門袱院,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屎慢,“玉大人,你說我怎么就攤上這事忽洛∧寤荩” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵欲虚,是天一觀的道長集灌。 經(jīng)常有香客問我,道長复哆,這世上最難降的妖魔是什么欣喧? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任腌零,我火速辦了婚禮,結(jié)果婚禮上唆阿,老公的妹妹穿的比我還像新娘益涧。我一直安慰自己,他們只是感情好驯鳖,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布闲询。 她就那樣靜靜地躺著,像睡著了一般臼隔。 火紅的嫁衣襯著肌膚如雪嘹裂。 梳的紋絲不亂的頭發(fā)上妄壶,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天摔握,我揣著相機與錄音,去河邊找鬼丁寄。 笑死氨淌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伊磺。 我是一名探鬼主播盛正,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼屑埋!你這毒婦竟也來了豪筝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤摘能,失蹤者是張志新(化名)和其女友劉穎续崖,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體团搞,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡严望,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了逻恐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片像吻。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖复隆,靈堂內(nèi)的尸體忽然破棺而出拨匆,到底是詐尸還是另有隱情,我是刑警寧澤挽拂,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布惭每,位于F島的核電站,受9級特大地震影響轻局,放射性物質(zhì)發(fā)生泄漏洪鸭。R本人自食惡果不足惜样刷,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望览爵。 院中可真熱鬧置鼻,春花似錦、人聲如沸蜓竹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俱济。三九已至嘶是,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛛碌,已是汗流浹背聂喇。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蔚携,地道東北人希太。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像酝蜒,于是被迫代替她去往敵國和親誊辉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容