pandas

自學(xué)整理記錄朴皆,大神見笑

為什么要學(xué)習(xí)pandas

  • numpy是處理數(shù)值型數(shù)據(jù)
  • pandas除了能處理numpy處理的數(shù)據(jù)以外,還能處理其他類型數(shù)據(jù)
  • 導(dǎo)包

import pandas as pd

  • 注:pandas安裝不上搔课,可以用源碼安裝胰柑,百度pandas pypi;whl執(zhí)行文件爬泥,tar.gz壓縮文件

pandas的常用數(shù)據(jù)類型

Series

  • 一維柬讨,帶索引的數(shù)組

  • Series創(chuàng)建

t = pd.Series(np.arange(5),index=list("abcde"))

  • 注:index是指定索引
  • 注:index要和數(shù)組長(zhǎng)度相等

temp_dict = {"name":"xiaohong","age":1,"tel":"119"}
pd.Series(temp_dict,index=list("name"))

  • 注:還可以通過傳字典來創(chuàng)建

  • 注:字典創(chuàng)建也可以傳入索引,如果傳入的索引存在袍啡,則對(duì)應(yīng)之前索引的值踩官;如果是全新的索引,那么值為NaN

  • 注:在numpy中為nan境输,在pandas中為NaN

  • pandas之Series切片和索引

list = {"name": "xiaohong", "age": 1, "tel": "119"}
t = pd.Series(list)
t["age"]
t[1]
t[:2]
t[[1,2]]

  • 注:分別表示取到age對(duì)應(yīng)的值卖鲤;索引1對(duì)應(yīng)的值肾扰;前兩行對(duì)應(yīng)的值;第一行和第二列對(duì)應(yīng)的值

  • 注:如果取值中的鍵值沒有蛋逾,那么值為NaN

  • pandas之Series索引和值

t.index

  • 注:獲取所有索引
  • 注:返回index類型

t.values

  • 注:獲取所有值

  • 注:返回ndarray類型

  • 注:ndarray中很多方法都可以運(yùn)用于series類型集晚,比如argmax,clip

  • 注:series具有where方法区匣,但結(jié)果和ndarray不同

  • pandas讀取外部數(shù)據(jù)

pd.read_csv # 讀取csv文件
pd.read_clipboard # 讀取剪切板文件
pd.read_excel # 讀取excel文件
pd.read_json # 讀取json文件
pd.read_html # 讀取html文件
pd.read_pickle #
pd.read_sql #
pd.read_sql_query #
pd.read_sql_table #
pd.read_sql(sql_sentence,connection) # 讀取mysql偷拔,傳入sql語(yǔ)句,連接即可亏钩;
# 讀取mongodb,獲取到第一條數(shù)據(jù)
client = MongoClient()
collection = client["MyMongo"]["test1"]
data = list(collection.find())
t1 = pd.Series(data[0])

DataFrame

  • 二維莲绰,Series容器

  • 創(chuàng)建DataFrame

pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("wxyz"))

  • DataFrame對(duì)象既有行索引,又有列索引
  • index是行索引姑丑,columns是列索引

temp_dict = [{"name":"xiaohong","age":1,"tel":"119"},{"name":"xiaoxiao","tel":"110"}]
pd.DataFrame(temp_dict)

  • 注:也可以傳字典生成DataFrame
  • 注:如果有缺失的值蛤签,用NaN代替

DataFrame方法

  • 行數(shù) 列數(shù)

df.shape

  • 列數(shù)據(jù)類型

df.dtypes

  • 數(shù)據(jù)維度

df.ndim

  • 行索引

df.index

  • 列索引

df.columns

  • 對(duì)象值,二維ndarray數(shù)組

df.values

  • 顯示前幾行栅哀,默認(rèn)5行

df.head()

  • 顯示末尾幾行震肮,默認(rèn)5行

df.tail()

  • 相關(guān)信息

df.info()

  • 快速綜合統(tǒng)計(jì)結(jié)果

df.describe()

  • 排序

df.sort_values(by="Count",ascending=False)

  • 注:by參數(shù)表示按照哪列排序,默認(rèn)升序

  • 注:ascending參數(shù)默認(rèn)True升序留拾,F(xiàn)alse為降序

  • 取行和取列

t = pd.DataFrame(np.arange(12).reshape(3, 4),index=list("abc"),columns=("WXYZ"))
df.loc["a":"c","W"]
df.iloc[[0,2],[2,1]]

  • 注:loc中的冒號(hào)是閉合的

  • 注:loc是通過索引獲取數(shù)據(jù)

  • 注:iloc是通過實(shí)際位置獲取數(shù)據(jù)

  • 更改值

t = pd.DataFrame(np.arange(12).reshape(3, 4),index=list("abc"),columns=("WXYZ"))
df.loc["a":"c","W"] = 1
df.iloc[[0,2],[2,1]] = np.nan

  • 注:直接賦值即可

  • 注:直接將nan賦值即可戳晌,不需要先轉(zhuǎn)換為float類型,因?yàn)镈ataFrame已經(jīng)在底層轉(zhuǎn)換了

  • pandas布爾索引

df[(df["Row"].str.len() > 4) & (df["Count"] > 700)]

  • 注:不同的條件之間需要用括號(hào)括起來痴柔,用&且沦偎、|或連接

  • 注:.str就可以取到字符串,.len()就會(huì)獲得長(zhǎng)度

  • pandas字符串方法

1543483013(1).jpg
方法 說明
cat 元素級(jí)字符串連接操作咳蔚,sep參數(shù)指定連接的字符串
contains 返回表示各字符串是否含有指定的布爾型數(shù)組

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

  • 數(shù)據(jù)缺失兩種情況
    1.為空豪嚎,NaN等
    2.為0,可能是真數(shù)據(jù)谈火,也可能是填充數(shù)據(jù)疙渣,區(qū)分對(duì)待

  • 判斷數(shù)據(jù)是否為NaN

pd.isnull(df)

  • 判斷數(shù)據(jù)是否不為NaN

pd.notnull(df)

  • 刪除NaN的數(shù)據(jù)的行或者列或者個(gè)體

t.dropna(axis=0,how="any",inplace=True)

  • 注:how參數(shù)默認(rèn)為any,有一個(gè)為NaN堆巧,就刪除;all泼菌,全部是NaN才刪除

  • 注:inplace參數(shù)默認(rèn)為False谍肤,不修改原數(shù)據(jù);True為修改原數(shù)據(jù)

  • 在NaN處填充數(shù)據(jù)

t.fillna(t.mean())
t["age"].fillna(t["age"].mean())

  • 注:通常替換均值哗伯,第一種是所有列的均值替換荒揣,第二種是替換某一列的
  • 注:pandas中的t.mean()會(huì)將NaN剔除,然后計(jì)算均值焊刹,與numpy不同

數(shù)據(jù)合并

  • 按照行索引合并

df1.join(df2)

  • 詳細(xì)如圖:
join.png
  • 注:以df1行為基準(zhǔn)系任,沒有的值填NaN

  • 按照列索引合并

df1.merge(df2)

  • 詳細(xì)如圖:
merge.png

數(shù)組分組

  • grouped = df.groupby(by="Country")
image.png
  • 將csv文件按照country分組恳蹲,返回DataFrameGroupBy對(duì)象,該對(duì)象可以遍歷俩滥,可以統(tǒng)計(jì)數(shù)量等
  • grouped中的每一個(gè)元素是一個(gè)元組嘉蕾,元組里面是(索引(分組的值),分組之后的DataFrame)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末霜旧,一起剝皮案震驚了整個(gè)濱河市错忱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挂据,老刑警劉巖以清,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異崎逃,居然都是意外死亡掷倔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門个绍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來勒葱,“玉大人,你說我怎么就攤上這事障贸〈砩” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵篮洁,是天一觀的道長(zhǎng)涩维。 經(jīng)常有香客問我,道長(zhǎng)袁波,這世上最難降的妖魔是什么瓦阐? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮篷牌,結(jié)果婚禮上睡蟋,老公的妹妹穿的比我還像新娘。我一直安慰自己枷颊,他們只是感情好戳杀,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著夭苗,像睡著了一般信卡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上题造,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天傍菇,我揣著相機(jī)與錄音,去河邊找鬼界赔。 笑死丢习,一個(gè)胖子當(dāng)著我的面吹牛牵触,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咐低,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼揽思,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了渊鞋?” 一聲冷哼從身側(cè)響起绰更,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锡宋,沒想到半個(gè)月后儡湾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡执俩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年徐钠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片役首。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡尝丐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出衡奥,到底是詐尸還是另有隱情爹袁,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布矮固,位于F島的核電站失息,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏档址。R本人自食惡果不足惜盹兢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望守伸。 院中可真熱鬧绎秒,春花似錦、人聲如沸尼摹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蠢涝。三九已至玄呛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惠赫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工故黑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留儿咱,地道東北人庭砍。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像混埠,于是被迫代替她去往敵國(guó)和親怠缸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

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