Python pandas用法

介紹

在Python中,pandas是基于NumPy數(shù)組構(gòu)建的掸鹅,使數(shù)據(jù)預(yù)處理塞帐、清洗、分析工作變得更快更簡單巍沙。pandas是專門為處理表格和混雜數(shù)據(jù)設(shè)計(jì)的葵姥,而NumPy更適合處理統(tǒng)一的數(shù)值數(shù)組數(shù)據(jù)。
使用下面格式約定句携,引入pandas包:

import pandas as pd

pandas有兩個(gè)主要數(shù)據(jù)結(jié)構(gòu):Series和DataFrame榔幸。

Series

Series是一種類似于一維數(shù)組的對象,它由一組數(shù)據(jù)(各種NumPy數(shù)據(jù)類型)以及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(即索引)組成,即index和values兩部分削咆,可以通過索引的方式選取Series中的單個(gè)或一組值牍疏。

Series的創(chuàng)建

pd.Series(list,index=[ ]),第二個(gè)參數(shù)是Series中數(shù)據(jù)的索引拨齐,可以省略鳞陨。

  • 第一個(gè)參數(shù)可以是列表\ndarray
import numpy as np, pandas as pd
arr1 = np.arange(10)
s1 = pd.Series(arr1)
print(s1)   #由于我們沒有為數(shù)據(jù)指定索引,于是會自動創(chuàng)建一個(gè)0到N-1(N為數(shù)據(jù)的長度)的整數(shù)型索引
0    0
1    1
2    2
3    3
4    4
5    5
6    6
7    7
8    8
9    9
  • 第一個(gè)參數(shù)可以是字典奏黑,字典的鍵將作為Series的索引
  • 第一個(gè)參數(shù)可以是DataFrame中的某一行或某一列

Series類型的操作

Series類型索引炊邦、切片、運(yùn)算的操作類似于ndarray熟史,同樣的類似Python字典類型的操作馁害,包括保留字in操作、使用.get()方法蹂匹。
Series和ndarray之間的主要區(qū)別在于Series之間的操作會根據(jù)索引自動對齊數(shù)據(jù)碘菜。

DataFrame

DataFrame是一個(gè)表格型的數(shù)據(jù)類型,每列值類型可以不同限寞,是最常用的pandas對象忍啸。DataFrame既有行索引也有列索引,它可以被看做由Series組成的字典(共用同一個(gè)索引)履植。DataFrame中的數(shù)據(jù)是以一個(gè)或多個(gè)二維塊存放的(而不是列表计雌、字典或別的一維數(shù)據(jù)結(jié)構(gòu))。

DataFrame的創(chuàng)建

pd.DataFrame(data,columns = [ ],index = [ ]):columns和index為指定的列玫霎、行索引凿滤,并按照順序排列。

  • 創(chuàng)建DataFrame最常用的是直接傳入一個(gè)由等長列表或NumPy數(shù)組組成的字典庶近,會自動加上行索引翁脆,字典的會被當(dāng)做列索引
import pandas as pd
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002, 2003],
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
df= pd.DataFrame(data)
In [45]: df
Out[45]: 
   pop   state  year
0  1.5    Ohio  2000
1  1.7    Ohio  2001
2  3.6    Ohio  2002
3  2.4  Nevada  2001
4  2.9  Nevada  2002
5  3.2  Nevada  2003

如果創(chuàng)建時(shí)指定了columns和index索引,則按照索引順序排列鼻种,并且如果傳入的列在數(shù)據(jù)中找不到反番,就會在結(jié)果中產(chǎn)生缺失值:

In [48]: df2 = pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'],
   ....:                       index=['one', 'two', 'three', 'four', 'five', 'six'])
In [49]: df2
Out[49]: 
       year   state  pop debt
one    2000    Ohio  1.5  NaN
two    2001    Ohio  1.7  NaN
three  2002    Ohio  3.6  NaN
four   2001  Nevada  2.4  NaN
five   2002  Nevada  2.9  NaN
six    2003  Nevada  3.2  NaN
  • 另一種常見的創(chuàng)建DataFrame方式是使用嵌套字典,如果嵌套字典傳給DataFrame叉钥,pandas就會被解釋為外層字典的鍵作為列罢缸,內(nèi)層字典鍵則作為行索引:
In [65]: pop = {'Nevada': {2001: 2.4, 2002: 2.9},
....:        'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
In [66]: df3 = pd.DataFrame(pop)
In [67]: df3
Out[67]: 
      Nevada  Ohio
2000     NaN   1.5
2001     2.4   1.7
2002     2.9   3.6
7178691-106835b28c0cea5a.png

DataFrame對象操作

  • df.values:將DataFrame轉(zhuǎn)換為ndarray二維數(shù)組,注意后面不加()投队。
  • 通過類似字典標(biāo)記的方式或?qū)傩缘姆绞椒憬梢詫ataFrame的列獲取為一個(gè)Series。
  • 列可以通過賦值的方式進(jìn)行修改蛾洛。例如,我們可以給那個(gè)空的"debt"列賦上一個(gè)標(biāo)量值或一組值。
  • 將列表或數(shù)組賦值給某個(gè)列時(shí)轧膘,其長度必須跟DataFrame的長度相匹配钞螟。如果賦值的是一個(gè)Series,就會精確匹配DataFrame的索引谎碍,所有的空位都將被填上缺失值鳞滨。
  • 為不存在的列賦值會創(chuàng)建出一個(gè)新列。關(guān)鍵字del用于刪除列蟆淀。
import pandas as pd
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
        'year': [2000, 2001, 2002, 2001, 2002, 2003],
        'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
In [48]: df2 = pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'],
   ....:                       index=['one', 'two', 'three', 'four', 'five', 'six'])

In [50]: df2.columns
Out[50]: Index(['year', 'state', 'pop', 'debt'], dtype='object')
#通過類似字典標(biāo)記的方式或?qū)傩缘姆绞秸玻梢詫ataFrame的列獲取為一個(gè)Series。
In [51]: df2['state']  #或者df2.state
Out[51]: 
one        Ohio
two        Ohio
three      Ohio
four     Nevada
five     Nevada
six      Nevada
Name: state, dtype: object
#列可以通過賦值的方式進(jìn)行修改熔任。例如褒链,我們可以給那個(gè)空的"debt"列賦上一個(gè)標(biāo)量值或一組值
In [54]: frame2['debt'] = 16.5
In [55]: frame2
Out[55]: 
       year   state  pop  debt
one    2000    Ohio  1.5  16.5
two    2001    Ohio  1.7  16.5
three  2002    Ohio  3.6  16.5
four   2001  Nevada  2.4  16.5
five   2002  Nevada  2.9  16.5
six    2003  Nevada  3.2  16.5
#將列表或數(shù)組賦值給某個(gè)列時(shí),其長度必須跟DataFrame的長度相匹配疑苔。如果賦值的是一個(gè)Series甫匹,就會精確匹配DataFrame的索引,所有的空位都將被填上缺失值
In [58]: val = pd.Series([-1.2, -1.5, -1.7], index=['two', 'four', 'five'])
In [59]: df2['debt'] = val
In [60]: df2
Out[60]: 
       year   state  pop  debt
one    2000    Ohio  1.5   16.5
two    2001    Ohio  1.7  -1.2
three  2002    Ohio  3.6   16.5
four   2001  Nevada  2.4  -1.5
five   2002  Nevada  2.9  -1.7
six    2003  Nevada  3.2   16.5
#為不存在的列賦值惦费,會創(chuàng)建出一個(gè)新列
In [61]: df2['eastern'] = df2.state == 'Ohio'
In [62]: df2
Out[62]: 
       year   state  pop  debt  eastern
one    2000    Ohio  1.5   NaN     True
two    2001    Ohio  1.7  -1.2     True
three  2002    Ohio  3.6   NaN     True
four   2001  Nevada  2.4  -1.5    False
five   2002  Nevada  2.9  -1.7    False
six    2003  Nevada  3.2   NaN    False
#關(guān)鍵字del用于刪除列
In [63]: del df2['eastern']
In [64]: df2.columns
Out[64]: Index(['year', 'state', 'pop', 'debt'], dtype='object')

pandas的基本功能

數(shù)據(jù)索引:Series和DataFrame的索引是Index類型兵迅,Index對象是不可修改,可通過索引值或索引標(biāo)簽獲取目標(biāo)數(shù)據(jù)薪贫,也可通過索引使序列或數(shù)據(jù)框的計(jì)算恍箭、操作實(shí)現(xiàn)自動化對齊。索引類型index的常用方法:

  • .append(idx):連接另一個(gè)Index對象瞧省,產(chǎn)生新的Index對象
  • .diff(idx):計(jì)算差集扯夭,產(chǎn)生新的Index對象
  • .intersection(idx):計(jì)算交集
  • .union(idx):計(jì)算并集
  • .delete(loc):刪除loc位置處的元素
  • .insert(loc,e):在loc位置增加一個(gè)元素


重新索引:能夠改變、重排Series和DataFrame索引臀突,會創(chuàng)建一個(gè)新對象勉抓,如果某個(gè)索引值當(dāng)前不存在,就引入缺失值候学。
df.reindex(index, columns ,fill_value, method, limit, copy ):index/columns為新的行列自定義索引藕筋;fill_value為用于填充缺失位置的值;method為填充方法梳码,ffill當(dāng)前值向前填充隐圾,bfill向后填充;limit為最大填充量掰茶;copy 默認(rèn)True暇藏,生成新的對象,F(xiàn)alse時(shí)濒蒋,新舊相等不復(fù)制盐碱。

In [98]: frame = pd.DataFrame(np.arange(9).reshape((3, 3)),
   ....:                      index=['a', 'c', 'd'],columns=['Ohio', 'Texas', 'California'])
In [99]: frame
Out[99]: 
   Ohio  Texas  California
a     0      1           2
c     3      4           5
d     6      7           8

In [100]: frame2 = frame.reindex(['a', 'b', 'c', 'd'])
In [101]: frame2
Out[101]: 
   Ohio  Texas  California
a   0.0    1.0         2.0
b   NaN    NaN         NaN
c   3.0    4.0         5.0
d   6.0    7.0         8.0

刪除指定索引:默認(rèn)返回的是一個(gè)新對象把兔。
.drop():能夠刪除Series和DataFrame指定行或列索引。
刪除一行或者一列時(shí)瓮顽,用單引號指定索引县好,刪除多行時(shí)用列表指定索引。
如果刪除的是列索引暖混,需要增加axis=1或axis='columns'作為參數(shù)缕贡。
增加inplace=True作為參數(shù),可以就地修改對象拣播,不會返回新的對象晾咪。


索引、選取和過濾
df.loc[行標(biāo)簽贮配,列標(biāo)簽]:通過標(biāo)簽查詢指定的數(shù)據(jù)谍倦,第一個(gè)值為行標(biāo)簽,第二值為列標(biāo)簽牧嫉。當(dāng)?shù)诙€(gè)參數(shù)為空時(shí)剂跟,查詢的是單個(gè)或多個(gè)行的所有列。如果查詢多個(gè)行酣藻、列的話曹洽,則兩個(gè)參數(shù)用列表表示。
df.iloc[行位置辽剧,列位置]:通過默認(rèn)生成的數(shù)字索引查詢指定的數(shù)據(jù)送淆。

In [128]: data = pd.DataFrame(np.arange(16).reshape((4, 4)),
   .....:                     index=['Ohio', 'Colorado', 'Utah', 'New York'],
   .....:                     columns=['one', 'two', 'three', 'four'])
?
In [129]: data
Out[129]: 
          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
#df.loc選取第二行、第二三列
In [137]: data.loc['Colorado', ['two', 'three']]   
Out[137]: 
two      5
three    6
Name: Colorado, dtype: int64
#df.iloc選取第二行怕轿、第二三列
In [138]: data.iloc[1, [1, 2]]
Out[138]: 
two      5
three    6
Name: Colorado, dtype: int64

在pandas中偷崩,有多個(gè)方法可以選取和重新組合數(shù)據(jù)。對于DataFrame撞羽,表5-4進(jìn)行了總結(jié)

表5-4 DataFrame的索引選項(xiàng)
算術(shù)運(yùn)算:算術(shù)運(yùn)算根據(jù)行列索引阐斜,對齊后運(yùn)算,運(yùn)算默認(rèn)產(chǎn)生浮點(diǎn)數(shù)诀紊,對齊時(shí)缺項(xiàng)填充NaN (空值)谒出。除了用+-*/外,還可以用Series和DataFrame的算術(shù)方法邻奠,這些方法傳入fill_value參數(shù)時(shí)笤喳,可以填充缺省值。比如df1.add(df2, fill_value = 1):
算術(shù)運(yùn)算
比較運(yùn)算只能比較相同索引的元素碌宴,不進(jìn)行補(bǔ)齊杀狡。采用>< >= <= == !=等符號進(jìn)行的比較運(yùn)算,產(chǎn)生布爾值贰镣。
排序 :在排序時(shí)呜象,任何缺失值默認(rèn)都會被放到末尾
.sort_index(axis=0, ascending=True):根據(jù)指定軸索引的值進(jìn)行排序膳凝。默認(rèn)軸axis=0, ascending=True,即默認(rèn)根據(jù)0軸的索引值做升序排序恭陡。軸axis=1為根據(jù)1軸的索引值排序鸠项, ascending=False為降序。
在指定軸上根據(jù)數(shù)值進(jìn)行排序子姜,默認(rèn)升序。
Series.sort_values(axis=0, ascending=True):只能根據(jù)0軸的值排序楼入。
DataFrame.sort_values(by, axis=0, ascending=True)哥捕,參數(shù)by為axis軸上的某個(gè)索引或索引列表。

pandas數(shù)據(jù)分析

統(tǒng)計(jì)分析嘉熊、相關(guān)分析

適用于Series和DataFrame的基本統(tǒng)計(jì)分析函數(shù):傳入axis='columns'或axis=1將會按行進(jìn)行運(yùn)算遥赚。
.describe():針對各列的多個(gè)統(tǒng)計(jì)匯總,用統(tǒng)計(jì)學(xué)指標(biāo)快速描述數(shù)據(jù)的概要阐肤。
.sum():計(jì)算各列數(shù)據(jù)的和
.count():非NaN值的數(shù)量
.mean( )/.median():計(jì)算數(shù)據(jù)的算術(shù)平均值凫佛、算術(shù)中位數(shù)
.var()/.std():計(jì)算數(shù)據(jù)的方差、標(biāo)準(zhǔn)差
.corr()/.cov():計(jì)算相關(guān)系數(shù)矩陣孕惜、協(xié)方差矩陣愧薛,是通過參數(shù)對計(jì)算出來的。Series的corr方法用于計(jì)算兩個(gè)Series中重疊的衫画、非NA的毫炉、按索引對齊的值的相關(guān)系數(shù)。DataFrame的corr和cov方法將以DataFrame的形式分別返回完整的相關(guān)系數(shù)或協(xié)方差矩陣削罩。
.corrwith():利用DataFrame的corrwith方法瞄勾,可以計(jì)算其列或行跟另一個(gè)Series或DataFrame之間的相關(guān)系數(shù)。傳入一個(gè)Series將會返回一個(gè)相關(guān)系數(shù)值Series(針對各列進(jìn)行計(jì)算)弥激,傳入一個(gè)DataFrame則會計(jì)算按列名配對的相關(guān)系數(shù)进陡。
.min()/.max():計(jì)算數(shù)據(jù)的最小值、最大值
.diff():計(jì)算一階差分微服,對時(shí)間序列很有效
.mode():計(jì)算眾數(shù)趾疚,返回頻數(shù)最高的那(幾)個(gè)
.mean():計(jì)算均值
.quantile():計(jì)算分位數(shù)(0到1)
.isin():用于判斷矢量化集合的成員資格,可用于過濾Series中或DataFrame列中數(shù)據(jù)的子集
適用于Series的基本統(tǒng)計(jì)分析函數(shù)职辨,DataFrame[列名]返回的是一個(gè)Series類型盗蟆。
.unique():返回一個(gè)Series中的唯一值組成的數(shù)組。
.value_counts():計(jì)算一個(gè)Series中各值出現(xiàn)的頻率舒裤。
.argmin()/.argmax():計(jì)算數(shù)據(jù)最大值喳资、最小值所在位置的索引位置(自動索引)
.idxmin()/.idxmax():計(jì)算數(shù)據(jù)最大值、最小值所在位置的索引(自定義索引)

分組

pandas讀寫文本格式的數(shù)據(jù)

pandas提供了一些用于將表格型數(shù)據(jù)讀取為DataFrame對象的函數(shù)。下表對它們進(jìn)行了總結(jié)匿乃,其中read_csv()桩皿、read_table()、to_csv()是用得最多的幢炸。

讀寫文本格式的數(shù)據(jù)
工作中實(shí)際碰到的數(shù)據(jù)可能十分混亂泄隔,一些數(shù)據(jù)加載函數(shù)(尤其是read_csv)的參數(shù)非常多(read_csv有超過50個(gè)參數(shù))。具體使用參考https://seancheney.gitbook.io/python-for-data-analysis-2nd/di-06-zhang-shu-ju-jia-zai-cun-chu-yu-wen-jian-ge-shi

用pandas來進(jìn)行數(shù)據(jù)清洗和準(zhǔn)備

在數(shù)據(jù)分析和建模的過程中宛徊,相當(dāng)多的時(shí)間要用在數(shù)據(jù)準(zhǔn)備上:加載佛嬉、清理、轉(zhuǎn)換以及重塑闸天。

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

在許多數(shù)據(jù)分析工作中暖呕,缺失數(shù)據(jù)是經(jīng)常發(fā)生的。對于數(shù)值數(shù)據(jù)苞氮,pandas使用浮點(diǎn)值NaN(np.nan)表示缺失數(shù)據(jù)缰揪,也可將缺失值表示為NA(Python內(nèi)置的None值)。

  • .info():查看數(shù)據(jù)的信息葱淳,包括每個(gè)字段的名稱钝腺、非空數(shù)量、字段的數(shù)據(jù)類型赞厕。
  • .isnull():返回一個(gè)同樣長度的值為布爾型的對象(Series或DataFrame)艳狐,表示哪些值是缺失的,.notnull()為其否定形式皿桑。
import pandas as pd
import numpy as np
In [10]: string_data = pd.Series(['aardvark', 'artichoke', np.nan, None])
In [11]: string_data
Out[11]:
0     aardvark
1    artichoke
2          NaN
3         None
dtype: object

In [14]: string_data.isnull()
Out[14]: 
0    False
1    False
2     True
3     True
dtype: bool
  • .dropna():刪除缺失數(shù)據(jù)毫目。對于Series對象,dropna返回一個(gè)僅含非空數(shù)據(jù)和索引值的Series诲侮。對于DataFrame對象镀虐,dropna默認(rèn)刪除含有缺失值的行;如果想刪除含有缺失值的列沟绪,需傳入axis = 1作為參數(shù)刮便;如果想刪除全部為缺失值的行或者列,需傳入how='all'作為參數(shù)绽慈;如果想留下一部分缺失數(shù)據(jù)恨旱,需傳入thresh = n作為參數(shù)辈毯,表示每行至少n個(gè)非NA值。
import pandas as pd
import numpy as np
In [19]: data = pd.DataFrame([[1., 6.5, 3.], [1., NA, NA], [NA, NA, NA], [NA, 6.5, 3.]])
In [20]: data.dropna()
Out[22]: 
     0    1    2
0  1.0  6.5  3.0
#傳入how='all'將只丟棄全為NA的那些行:
In [23]: data.dropna(how='all')
Out[23]: 
     0    1    2
0  1.0  6.5  3.0
1  1.0  NaN  NaN
3  NaN  6.5  3.0

In [24]: data[4] = NA
In [25]: data
Out[25]: 
     0    1    2   4
0  1.0  6.5  3.0 NaN
1  1.0  NaN  NaN NaN
2  NaN  NaN  NaN NaN
3  NaN  6.5  3.0 NaN
#用這種方式丟棄列搜贤,只需傳入axis=1即可:
In [26]: data.dropna(axis=1, how='all')
Out[26]: 
     0    1    2
0  1.0  6.5  3.0
1  1.0  NaN  NaN
2  NaN  NaN  NaN
3  NaN  6.5  3.0
#假設(shè)你只想留下一部分觀測數(shù)據(jù)谆沃,可以用thresh參數(shù)實(shí)現(xiàn)此目的:
In [27]: df = pd.DataFrame(np.random.randn(7, 3))
In [28]: df.iloc[:4, 1] = NA
In [29]: df.iloc[:2, 2] = NA
In [30]: df
Out[30]: 
          0         1         2
0 -0.204708       NaN       NaN
1 -0.555730       NaN       NaN
2  0.092908       NaN  0.769023
3  1.246435       NaN -1.296221
4  0.274992  0.228913  1.352917
5  0.886429 -2.001637 -0.371843
6  1.669025 -0.438570 -0.539741

In [32]: df.dropna(thresh=2)
Out[32]: 
          0         1         2
2  0.092908       NaN  0.769023
3  1.246435       NaN -1.296221
4  0.274992  0.228913  1.352917
5  0.886429 -2.001637 -0.371843
6  1.669025 -0.438570 -0.539741
  • .fillna(value,method,limit,inplace):填充缺失值。value為用于填充的值(比如0仪芒、'a'等)或者是字典(比如{'列':1,'列':8,……}為指定列的缺失數(shù)據(jù)填充值)唁影;method默認(rèn)值為ffill,向前填充掂名,bfill為向后填充夭咬;limit為向前或者向后填充的最大填充量。inplace默認(rèn)會返回新對象铆隘,修改為inplace=True可以對現(xiàn)有對象進(jìn)行就地修改。

數(shù)據(jù)轉(zhuǎn)換

替換值
.replace(old, new):用新的數(shù)據(jù)替換老的數(shù)據(jù)南用,如果希望一次性替換多個(gè)值膀钠,old和new可以是列表。默認(rèn)會返回一個(gè)新的對象裹虫,傳入inplace=True可以對現(xiàn)有對象進(jìn)行就地修改肿嘲。

刪除重復(fù)數(shù)據(jù)

  • .duplicated():判斷各行是否是重復(fù)行(前面出現(xiàn)過的行),返回一個(gè)布爾型Series筑公。
  • .drop_duplicates():刪除重復(fù)行雳窟,返回刪除后的DataFrame對象。默認(rèn)保留的是第一個(gè)出現(xiàn)的行匣屡,傳入keep='last'作為參數(shù)后封救,則保留最后一個(gè)出現(xiàn)的行。
  • 兩者都默認(rèn)會對全部列做判斷捣作,在傳入列索引組成的列表[ '列1' , '列2' , ……]作為參數(shù)后誉结,可以只對這些列進(jìn)行重復(fù)項(xiàng)判斷。

利用函數(shù)或字典進(jìn)行數(shù)據(jù)轉(zhuǎn)換

  • Series.map():接受一個(gè)函數(shù)或字典作為參數(shù)券躁。使用map方法是一種實(shí)現(xiàn)元素級轉(zhuǎn)換以及其他數(shù)據(jù)清理工作的便捷方式惩坑。
import pandas as pd
In [52]: data = pd.DataFrame({'food': ['bacon', 'pulled pork', 'bacon','pastrami', 'corned beef', 'bacon','pastrami', 'honey ham', 'nova lox'],
   ....                       'ounces': [4, 3, 12, 6, 7.5, 8, 3, 5, 6]})
meat_to_animal = {
  'bacon': 'pig',  'pulled pork': 'pig',  'pastrami': 'cow',  'corned beef': 'cow',
  'honey ham': 'pig',  'nova lox': 'salmon'
}
#增加一列animal
In [57]: data['animal'] = data['food'].map(meat_to_animal)
In [58]: data
Out[58]: 
          food  ounces  animal
0        bacon     4.0     pig
1  pulled pork     3.0     pig
2        bacon    12.0     pig
3     Pastrami     6.0     cow
4  corned beef     7.5     cow
5        Bacon     8.0     pig
6     pastrami     3.0     cow
7    honey ham     5.0     pig
8     nova lox     6.0  salmon

DataFrame常見函數(shù)

df.head():查詢數(shù)據(jù)的前五行
df.tail():查詢數(shù)據(jù)的末尾5行
pandas.cut()
pandas.qcut() 基于分位數(shù)的離散化函數(shù)∫舶荩基于秩或基于樣本分位數(shù)將變量離散化為等大小桶以舒。
pandas.date_range() 返回一個(gè)時(shí)間索引
df.apply() 沿相應(yīng)軸應(yīng)用函數(shù)
Series.value_counts() 返回不同數(shù)據(jù)的計(jì)數(shù)值
df.aggregate()
df.reset_index() 重新設(shè)置index,參數(shù)drop = True時(shí)會丟棄原來的索引慢哈,設(shè)置新的從0開始的索引蔓钟。常與groupby()一起用
numpy.zeros()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市卵贱,隨后出現(xiàn)的幾起案子奋刽,更是在濱河造成了極大的恐慌瓦侮,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件佣谐,死亡現(xiàn)場離奇詭異肚吏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)狭魂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門罚攀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人雌澄,你說我怎么就攤上這事斋泄。” “怎么了镐牺?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵炫掐,是天一觀的道長。 經(jīng)常有香客問我睬涧,道長募胃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任畦浓,我火速辦了婚禮痹束,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘讶请。我一直安慰自己祷嘶,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布夺溢。 她就那樣靜靜地躺著论巍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪风响。 梳的紋絲不亂的頭發(fā)上环壤,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機(jī)與錄音钞诡,去河邊找鬼郑现。 笑死,一個(gè)胖子當(dāng)著我的面吹牛荧降,可吹牛的內(nèi)容都是我干的接箫。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼朵诫,長吁一口氣:“原來是場噩夢啊……” “哼辛友!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤废累,失蹤者是張志新(化名)和其女友劉穎邓梅,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邑滨,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡日缨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掖看。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匣距。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖哎壳,靈堂內(nèi)的尸體忽然破棺而出毅待,到底是詐尸還是另有隱情,我是刑警寧澤归榕,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布尸红,位于F島的核電站,受9級特大地震影響刹泄,放射性物質(zhì)發(fā)生泄漏外里。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一循签、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疙咸,春花似錦县匠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至题山,卻和暖如春兰粉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背顶瞳。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工玖姑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人慨菱。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓焰络,卻偏偏與公主長得像,于是被迫代替她去往敵國和親符喝。 傳聞我的和親對象是個(gè)殘疾皇子闪彼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

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