03.pandas基礎(chǔ)操作

3、pandas基礎(chǔ)操作

1. pandas 介紹

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

  • numpy已經(jīng)可以幫助我們進(jìn)行數(shù)據(jù)的處理了趋厉,那么學(xué)習(xí)pandas的目的是什么呢寨闹?
    • numpy能夠幫助我們處理的是數(shù)值型的數(shù)據(jù),當(dāng)然在數(shù)據(jù)分析中除了數(shù)值型的數(shù)據(jù)還有好多其他類型的數(shù)據(jù)(字符串君账, 時間序列)繁堡,那么pandas就可以幫我們很好的處理除了數(shù)值型的其他數(shù)據(jù)!

什么是pandas?

  • 首先先來認(rèn)識pandas中的兩個常用的類
    • Series
    • DataFrame

2. Series 的簡單使用

Series是一種類似與一維數(shù)組的對象,由下面兩個部分組成:

  • values:一組數(shù)據(jù)(ndarray類型)
  • index:相關(guān)的數(shù)據(jù)索引標(biāo)簽

2.1 Series的創(chuàng)建方式

# 導(dǎo)入Series椭蹄、pandas相關(guān)包
from pandas import Series

(1)由列表創(chuàng)建

s = Series(data=[1,2,3,'four'])
s
image.png

(2)由numpy數(shù)組創(chuàng)建

import numpy as np
s = Series(data=np.random.randint(0,100,size=(3,)))
s
image.png

(3)index 用來指定顯示索引

s = Series(data=[1,2,3,'four'],index=['a','b','c','d'])
s
image.png

(4)使用字典創(chuàng)建

dic ={
    '語文':80,
    '數(shù)學(xué)':70,
    '英語':60
}
s = Series(data=dic)
s
image.png

2.2 Series索引的作用

(1)顯示索引可以增強(qiáng)Series的可讀行

(2)Series的索引和切片

# 查看隱式索引為0的行數(shù)據(jù)
s[0]
image.png
# 查看顯示索引為'語文'的行數(shù)據(jù)
s.語文
image.png
# 查看0到2行的行數(shù)據(jù)
s[0:2]
image.png

2.3 Series的常用屬性

(1)shape 查看Series形狀

image.png

(2)size 查看Series的大小

image.png

(3)index 返回Series索引

image.png

(4)values 返回Series值

image.png

(5)dtype 返回元素類型

image.png

2.4 Series的常用方法

創(chuàng)建一個樣本

s = Series(data=np.random.randint(60,100,size=(10,)))
s
image.png

(1)head()顯示前N個數(shù)組 闻牡,默認(rèn)是5個

s.head()
image.png

(2)tail() 顯示后n個

s.tail(3) #顯示后n個
image.png

(3)unique() 去重

s.unique() #去重
image.png

(4)isnull() 判斷每一個元素是否為空

s.isnull()  #判斷每一個元素是否為空
image.png

(5)notnull() 判斷每一個元素是否為非空

s.notnull()  #判斷每一個元素是否為非空
image.png

2.5 Series 的算術(shù)運(yùn)算

索引一致的元素進(jìn)行算術(shù)運(yùn)算,否則為空

s1 = Series(data=[1,2,3],index=['a','b','c'])
s2 = Series(data=[1,2,3],index=['a','d','c'])
s = s1 + s2
s
image.png

3. DataFrane的簡單使用

DataFrame是一個【表格型】的數(shù)據(jù)結(jié)構(gòu)绳矩。DataFrame由按一定順序排列的多列數(shù)據(jù)組成罩润。設(shè)計(jì)初衷是將Series的使用場景從—維拓展到多維。DataFrame既有行索引埋酬,也有列索引哨啃。

  • 行索引 :index
  • 列索引: columns值: values

3.1 DataFrame的創(chuàng)建

# 導(dǎo)入DataFrame 模塊
from pandas import DataFrame

(1)ndarray創(chuàng)建

df = DataFrame(data=np.random.randint(0,100,size=(6,4)))
df
image.png

(2)字典創(chuàng)建

dic ={
    'name':['a','d','c'],
    'age':[11,12,13]
}
df = DataFrame(data=dic,index=['a','b','c'])
df
image.png

3.2 DataFrame 的屬性

(1)values 查看DataFrame 的值

df.values
image.png

(2)columns 查看DataFrame 的列索引

df.columns
image.png

(3)index 查看DataFrame 的行索引

df.index
image.png

(4)shape 查看DataFrame的形狀

df.shape
image.png

3.3 練習(xí)

根據(jù)以下考試成績表,創(chuàng)建一個DataFrame写妥,命名為df:

張三 李四
語文 150 50
數(shù)學(xué) 150 50
英語 150 50
理綜 150 50
dic ={
    '張三': [150,150,150,300],
    '李四': [0,0,0,0]
}
s = DataFrame(data=dic,index=['語文','數(shù)學(xué)','英語','理綜'])
s
image.png

3.4 DataFrame索引操作

創(chuàng)建樣本

df = DataFrame(data=np.random.randint(60,100,size=(8,4)),columns=['a','b','c','d'])
df
image.png

(1)對列進(jìn)行索引取值

df['a']  #取單列拳球,如果df有顯示的索引,通過索引機(jī)制取行或者列的時候只可以使用顯示索引
image.png

(2)取多列

df[['a','c']] #取多列
image.png

(3)iloc:通過隱式索引取行

#取單行
df.iloc[0]
image.png
# 取單列
df.iloc[:,0]
image.png
#取多行
df.iloc[[0,3,5]]
image.png
#取多列
df.iloc[:,[0,2,3]]
image.png
#取第0行第三列的數(shù)據(jù)
df.iloc[0,3]
image.png
#取多個元素
df.loc[[1,3,5],'c']
image.png

(4)loc:通過顯示索引取行

#取單行
df.loc[:,'a']
image.png
#取多列
df.loc[:,['a','b']]
image.png
# 取多個元素
df.loc[[1,3,5],'c']
image.png

3.5 DataFrame的切片操作

(1)對行進(jìn)行切片

df[0:3]
image.png

(2)對列進(jìn)行切片

df.iloc[:,0:2]
image.png

(3)對行和列進(jìn)行切片

df.iloc[0:2,0:2]
image.png

3. 6 總結(jié):

  • df 索引和切片操作
    • 索引:
      • df[col]:取列
      • df.loc[index]:取列珍特,顯示索引
      • df.iloc[index]:取列祝峻,隱式索引
      • df.iloc[index,col]:取元素,隱式索引
    • 切片:
      • df[index1,index2]:切行
      • df.iloc[:,col1:col2]:切列

3.7 練習(xí)

要求:

1.假設(shè)ddd是期中考試成績扎筒,ddd2是期末考試成績莱找,請自由創(chuàng)建ddd2,并將其與ddd相加嗜桌,求期中期末平均值

2.假設(shè)張三期中考試數(shù)學(xué)被發(fā)現(xiàn)作弊奥溺,要記為0分,如何實(shí)現(xiàn)?

3.李四因?yàn)榕e報(bào)張三作弊立功骨宠,期中考試所有科目加100分浮定,如何實(shí)現(xiàn)?

4.后來老師發(fā)現(xiàn)有一道題出錯了,為了安撫學(xué)生情緒层亿,給每位學(xué)生每個科目都加10分桦卒,如何實(shí)現(xiàn)?

(1)創(chuàng)建數(shù)據(jù)結(jié)構(gòu)

dic1 ={
    '張三':[100,100,100,100],
    '李四':[80,80,80,80]
}

dic2 ={
    '張三':[80,80,80,80],
    '李四':[100,100,100,100]
}

#期中
ddd = DataFrame(data=dic1,index=['語文','數(shù)學(xué)','英語','理綜'])
#期末
ddd2 = DataFrame(data=dic2,index=['語文','數(shù)學(xué)','英語','理綜'])

(2)計(jì)算期中期末的平均值

#總分
count = ddd + ddd2

#平均值
ave = count / 2
image.png

(3)張三期中考試數(shù)學(xué)被發(fā)現(xiàn)作弊,要記為0分

#張三期中考試數(shù)學(xué)記為0分
ddd.loc['數(shù)學(xué)','張三']=0
ddd
image.png

(4)將李四所有成績加100

#將李四所有成績加100
ddd.loc[:,'李四']+=100   #ddd['李四'] += 100
ddd
image.png

(5)給所有學(xué)生每個科目加10分

#給所有學(xué)生每個科目加10分
ddd.loc[:]+=10   # ddd += 10
ddd
image.png

3.8 時間數(shù)據(jù)類型的轉(zhuǎn)換

  • pd.to_datetime(col) 時間數(shù)據(jù)類型的轉(zhuǎn)換

(1)創(chuàng)建樣本

import pandas as pd
dic = {
    'time':['2021-9-8','2021-8-8','2021-7-8'],
    'temp':[10,20,30]
}
df = DataFrame(data=dic)
df
image.png

(2)查看time列的類型

#查看time列的類型  字符串類型
df['time'].dtype
image.png

(3)將time列轉(zhuǎn)為時間類型

df['time'] = pd.to_datetime(df['time'])
df
image.png
  • 將time列作為原數(shù)據(jù)的行索引 inplace是否覆蓋原df
df.set_index('time',inplace=True)
df
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末匿又,一起剝皮案震驚了整個濱河市方灾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌碌更,老刑警劉巖裕偿,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異痛单,居然都是意外死亡击费,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門桦他,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事快压≡沧校” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵蔫劣,是天一觀的道長坪郭。 經(jīng)常有香客問我,道長脉幢,這世上最難降的妖魔是什么歪沃? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮嫌松,結(jié)果婚禮上沪曙,老公的妹妹穿的比我還像新娘。我一直安慰自己萎羔,他們只是感情好液走,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贾陷,像睡著了一般缘眶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上髓废,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天巷懈,我揣著相機(jī)與錄音,去河邊找鬼慌洪。 笑死顶燕,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蒋譬。 我是一名探鬼主播割岛,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼犯助!你這毒婦竟也來了癣漆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤剂买,失蹤者是張志新(化名)和其女友劉穎惠爽,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡舞蔽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年脑豹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片较性。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赞咙,到底是詐尸還是另有隱情责循,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布攀操,位于F島的核電站院仿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏速和。R本人自食惡果不足惜歹垫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颠放。 院中可真熱鬧排惨,春花似錦、人聲如沸慈迈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽痒留。三九已至谴麦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伸头,已是汗流浹背匾效。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恤磷,地道東北人面哼。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像扫步,于是被迫代替她去往敵國和親魔策。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

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