Pandas狰住、Numpy和Matplotlib(知識(shí)點(diǎn)小結(jié))

一、Pandas

1.1 文件讀取

import pandas as pd

df=pd.read_csv("文件位置")

1.2 DataFrame 和 Series

創(chuàng)建: s=pd.Series(data,index=index)

????其中勇蝙,data可以是:字典,數(shù)組除盏,列表,整數(shù)的值挫以,index可自定義或省略(即默認(rèn))

? ? ? ? ? ? p=pd.DataFrame(data,columns=...,index=...)

? ? 其中者蠕,data可以是:字典,二維數(shù)組掐松,series踱侣,dataframe

1.3 常用的操作

1.3.1 屬性

df.columns ?? 查看列名

df.index ?? 查看索引

df.dtypes ?? 查看數(shù)據(jù)類型

df.shape ?? 返回列數(shù)和行數(shù)

df.size ?? 返回行數(shù)和列數(shù)的乘積

1.3.2 方法

df.head(N) ?? 返回前N列

df.tail(N) ?? 返回后N列

df.rename() ? ? ? 更改列名,括號(hào)內(nèi)為字典格式大磺,即 舊:新

df.replace() ?? 更改值

df.value_counts() ?? 返回不同的值及其出現(xiàn)的次數(shù)

df.sort_values(by=...) ?? 按...進(jìn)行排序

df.describe() ?? 返回?cái)?shù)值型變量的統(tǒng)計(jì)數(shù)據(jù)

max/min/mean/sum ?? 返回 最大值/最小值/平均值/和

1.3.3 數(shù)據(jù)選取/添加/刪除

1.選取

df['列名'] ? ? 或 ? ?? df.列名

df[['列名1','列名2‘]]

2.增加

df.新增列名=值 ? ? ?? 或 ? ? ?? df.新增列名=值

條件篩選

df[條件]

3.刪除

del df['列名]

1.4 Missing Value

檢測(cè)缺失值抡句,返回布爾值

pd.isnull(df) ? ? ?? 或 ? ? ?? pd.isnull(df.列名)

刪除缺失值

df.dropna(axis=0或1) ??

填充缺失值

df.fillna(value=填充內(nèi)容)

1.5 文本數(shù)據(jù)

s是一個(gè)Series

s.str.strip() ?? 去除首尾空格

s.str.upper() ?? 變?yōu)榇髮?/p>

綜合運(yùn)用:s[s.str.strip().str.endswith('a')]

1.6 ?? 索引選取

1.6.1 loc

loc是基于標(biāo)簽的,允許的輸入為:

? ? 1.單個(gè)標(biāo)簽杠愧,如:5待榔,'a'

? ? 2.一個(gè)列表或標(biāo)簽數(shù)組,如: ['a','b','c']

? ? 3.一個(gè)標(biāo)簽的切片流济,如: 'd' : 'f'

? ? 4.一個(gè)布爾數(shù)組

? ? 5.具有一個(gè)參數(shù)的可調(diào)用函數(shù)

例:

? ? df.loc[0:5] ? ?

? ? df.loc[1]

? ? df.loc[0,4,6]

? ? df.loc[條件]

1.6.2 iloc

iloc 是基于整數(shù)位置:

? ? 1.一個(gè)整數(shù) 5

? ? 2.一個(gè)整數(shù)列表[4,3,0]

? ? 3.一個(gè)區(qū)間? 1:7

? ? 4.一個(gè)布爾數(shù)組

? ? 5.具有一個(gè)參數(shù)的可調(diào)用函數(shù)

loc與iloc的區(qū)別:

? ? loc選行是通過索引列的值來選取

? ? iloc選行是通過未至整數(shù)來選取

例:

? ? df.loc[ :10 , ['列名1'究抓,'列名2'] ] ??

? ? df.iloc[ :10,? [0,1]]

? ? 逗號(hào)后面為選擇的列

1.6.3 ?? 數(shù)據(jù)過濾(loc的應(yīng)用)

? ? df.loc[過濾條件]

? ? 類似于SQL中的where功能

1.6.4 多重索引

1.創(chuàng)建索引

new_df=df.set_index(keys=['列名1','列名2'])

其中,參數(shù)append=True表示保留原索引

? ? ? ? ?? 參數(shù)drop=True表示丟棄被設(shè)為索引的列

刪除索引 ?? new_df.reset_index

2.對(duì)索引排序

new_df.sort_index(na_position='last',inplace=True)

其中袭灯,參數(shù)na_position表示如果存在空值則放在最后

? ? ? ? ?? 參數(shù)inplace表示是否在原數(shù)據(jù)中保存更改

3.用slice對(duì)多重索引進(jìn)行操作

? ? 例:

new_df.loc[(slice(0,100),['索引列2值1','索引列2值2','索引列2值3'],slice(None)) ,? :? ]

其中绑嘹,前面分別是對(duì)三個(gè)索引列的操作稽荧,逗號(hào)后面是columns

4. IndexSlice

???? IndexSlice是一種更接近自然語法的用法,可以替換slice

例: idx=pd.IndexSlice

new_df.loc[idx[ : , : , : ], : idx['列名1','列名2']

其中工腋,逗號(hào)前面是對(duì)三個(gè)索引列的操作姨丈,逗號(hào)后面是對(duì)columns的操作,注意,逗號(hào)后面加上冒號(hào)返回的是一個(gè)表格擅腰,不加冒號(hào)返回一個(gè)列表

1.7 分組計(jì)算

三個(gè)步驟:1.根據(jù)一些標(biāo)準(zhǔn)將數(shù)據(jù)分組(spliting)

? ? ? ? ? ? ? ? ?? 2.對(duì)分組數(shù)據(jù)作用一些函數(shù)(applying)

? ? ? ? ? ? ? ? ?? 3.將結(jié)果組合返回一個(gè)數(shù)據(jù)結(jié)構(gòu)蟋恬,如DataFrame (combining)

在第二個(gè)步驟中:1.aggregation:統(tǒng)計(jì)特征,如avg,max,min,sum

? ? ? ? ? ? ? ? ? ? ? ? ? ?? 2.transformation: 轉(zhuǎn)換趁冈,如填充缺失值歼争、標(biāo)準(zhǔn)化

? ? ? ? ? ? ? ? ? ? ? ? ? ?? 3.filtration:對(duì)組進(jìn)行篩選

分組:grouped=df.groupby('列名')

grouped.size() ?? 有多少組,每組有多少條數(shù)據(jù)

grouped.groups ?? 每組的詳細(xì)情況

len(grouped) ?? 小組的個(gè)數(shù)

1.7.1 統(tǒng)計(jì)計(jì)算

1.單個(gè)統(tǒng)計(jì)量計(jì)算

?grouped.mean()

grouped.sum()

grouped.std()

grouped['列名'].sum()

2.使用agg函數(shù)進(jìn)行多個(gè)統(tǒng)計(jì)量計(jì)算

grouped.agg([np.mean,np.sum,np.std])

3.不同的列應(yīng)用不同的統(tǒng)計(jì)量

grouped.agg({'列名1':np.mean,'列名2':np.sum,...})

1.7.2 transformation

? ? 對(duì)null填充值

z_score=lambda s : (s-s.mean())/s.std()

grouped[['列名1','列名2']].transform(z_score)

1.7.3 filteration

grouped.filter(lambda g : len(g) > 1)

1.8 表聯(lián)結(jié)

1.8.1 結(jié)構(gòu)完全一樣的表

result = pd.concat([df1,df2,df3])

1.8.2? merge函數(shù)

1.在一個(gè)主鍵上join

result = pd.merge(left,right,how=left/right/outer,on='key')

2. 在多個(gè)主鍵上join

當(dāng)兩個(gè)表主鍵列名都為key1,key2時(shí)

result = pd.merge(left,right,how=left/right/outer,on=['key1','key2'])

當(dāng)兩個(gè)表主鍵列名分別為key1,key2和key3渗勘,key4時(shí)

result = pd.merge(left,right,how=left/right/outer,left_on=['key1','key2'],right_on=['key3','key4'])

注:主鍵位置要相對(duì)應(yīng)

3.在索引上join時(shí)

key1,key2是left的索引列

key1,key2是right的索引列

result = pd.merge(left,right,how=left/right/outer,left_index=True,right_index=True)

4.索引列和column join

key1,key2 為left的索引列

key1,key2 為right的columns

result = pd.merge(left,right,how=left/right/outer,left_index=True,right_on=['key1','key2'])

1.9? 數(shù)據(jù)透視表

1.9.1 pivot_table

參數(shù): data ? 數(shù)據(jù)源? 沐绒; ??

????????????values ?? 值? ;

? ? ? ? ? ? index? 索引列(首列)旺坠;

? ? ? ? ? ? columns ?? 行乔遮;

? ? ? ? ? ? aggfunc ? ? 作用的函數(shù);

pd.pivot_table(df,values=['列名']取刃,index=['列名'],aggfunc=[np.sum,np.std,...]) ? ?


tips:未完待續(xù)蹋肮、出刷、、

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坯辩,一起剝皮案震驚了整個(gè)濱河市馁龟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌濒翻,老刑警劉巖屁柏,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異有送,居然都是意外死亡淌喻,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門雀摘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來裸删,“玉大人,你說我怎么就攤上這事阵赠⊙乃” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵清蚀,是天一觀的道長(zhǎng)匕荸。 經(jīng)常有香客問我,道長(zhǎng)枷邪,這世上最難降的妖魔是什么榛搔? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮东揣,結(jié)果婚禮上践惑,老公的妹妹穿的比我還像新娘。我一直安慰自己嘶卧,他們只是感情好尔觉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芥吟,像睡著了一般侦铜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钟鸵,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天泵额,我揣著相機(jī)與錄音,去河邊找鬼携添。 笑死嫁盲,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播羞秤,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缸托,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了瘾蛋?” 一聲冷哼從身側(cè)響起俐镐,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎哺哼,沒想到半個(gè)月后佩抹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡取董,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年棍苹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茵汰。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡枢里,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹂午,到底是詐尸還是另有隱情栏豺,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布豆胸,位于F島的核電站奥洼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏晚胡。R本人自食惡果不足惜溉卓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搬泥。 院中可真熱鬧,春花似錦伏尼、人聲如沸忿檩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽燥透。三九已至,卻和暖如春辨图,著一層夾襖步出監(jiān)牢的瞬間班套,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工故河, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吱韭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓鱼的,卻偏偏與公主長(zhǎng)得像理盆,于是被迫代替她去往敵國(guó)和親痘煤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

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