欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python pandas常用函數(shù)詳解

 更新時(shí)間:2018年02月07日 11:19:32   作者:Rex_Blog  
這篇文章主要介紹了Python pandas常用函數(shù)詳解,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

本文研究的主要是pandas常用函數(shù),具體介紹如下。

1 import語(yǔ)句

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import datetime
import re

2 文件讀取

df = pd.read_csv(path='file.csv')
參數(shù):header=None 用默認(rèn)列名,0,1,2,3...
names=['A', 'B', 'C'...] 自定義列名
index_col='A'|['A', 'B'...] 給索引列指定名稱,如果是多重索引,可以傳list
skiprows=[0,1,2] 需要跳過(guò)的行號(hào),從文件頭0開(kāi)始,skip_footer從文件尾開(kāi)始
nrows=N 需要讀取的行數(shù),前N行
chunksize=M 返回迭代類型TextFileReader,每M條迭代一次,數(shù)據(jù)占用較大內(nèi)存時(shí)使用
sep=':'數(shù)據(jù)分隔默認(rèn)是',',根據(jù)文件選擇合適的分隔符,如果不指定參數(shù),會(huì)自動(dòng)解析
skip_blank_lines=False 默認(rèn)為T(mén)rue,跳過(guò)空行,如果選擇不跳過(guò),會(huì)填充NaN
converters={'col1', func} 對(duì)選定列使用函數(shù)func轉(zhuǎn)換,通常表示編號(hào)的列會(huì)使用(避免轉(zhuǎn)換成int)

dfjs = pd.read_json('file.json') 可以傳入json格式字符串
dfex = pd.read_excel('file.xls', sheetname=[0,1..]) 讀取多個(gè)sheet頁(yè),返回多個(gè)df的字典

3 數(shù)據(jù)預(yù)處理

df.duplicated() 返回各行是否是上一行的重復(fù)行
df.drop_duplicates() 刪除重復(fù)行,如果需要按照列過(guò)濾,參數(shù)選填['col1', 'col2',...]
df.fillna(0) 用實(shí)數(shù)0填充na
df.dropna() axis=0|1 0-index 1-column
how='all'|'any' all-全部是NA才刪 any-只要有NA就全刪
del df['col1'] 直接刪除某一列
df.drop(['col1',...], aixs=1) 刪除指定列,也可以刪除行
df.column = col_lst 重新制定列名
df.rename(index={'row1':'A'}, 重命名索引名和列名
columns={'col1':'A1'})
df.replace(dict) 替換df值,前后值可以用字典表,{1:‘A', '2':'B'}

def get_digits(str):
m = re.match(r'(\d+(\.\d+)?)', str.decode('utf-8'))
if m is not None:
return float(m.groups()[0])
else:
return 0
df.apply(get_digits) DataFrame.apply,只獲取小數(shù)部分,可以選定某一列或行
df['col1'].map(func) Series.map,只對(duì)列進(jìn)行函數(shù)轉(zhuǎn)換

pd.merge(df1, df2, on='col1',
how='inner',sort=True) 合并兩個(gè)DataFrame,按照共有的某列做內(nèi)連接(交集),outter為外連接(并集),結(jié)果排序

pd.merge(df1, df2, left_on='col1',
right_on='col2') df1 df2沒(méi)有公共列名,所以合并需指定兩邊的參考列


pd.concat([sr1, sr2, sr3,...], axis=0) 多個(gè)Series堆疊成多行,結(jié)果仍然是一個(gè)Series
pd.concat([sr1, sr2, sr3,...], axis=1) 多個(gè)Series組合成多行多列,結(jié)果是一個(gè)DataFrame,索引取并集,沒(méi)有交集的位置填入缺省值NaN

df1.combine_first(df2) 用df2的數(shù)據(jù)補(bǔ)充df1的缺省值NaN,如果df2有更多行,也一并補(bǔ)上

df.stack() 列旋轉(zhuǎn)成行,也就是列名變?yōu)樗饕饕兂啥鄬铀饕?,結(jié)果是具有多層索引的Series,實(shí)際上是把數(shù)據(jù)集拉長(zhǎng)

df.unstack() 將含有多層索引的Series轉(zhuǎn)換為DataFrame,實(shí)際上是把數(shù)據(jù)集壓扁,如果某一列具有較少類別,那么把這些類別拉出來(lái)作為列
df.pivot() 實(shí)際上是unstack的應(yīng)用,把數(shù)據(jù)集壓扁

pd.get_dummies(df['col1'], prefix='key') 某列含有有限個(gè)值,且這些值一般是字符串,例如國(guó)家,借鑒位圖的思想,可以把k個(gè)國(guó)家這一列量化成k列,每列用0、1表示

4 數(shù)據(jù)篩選

df.columns 列名,返回Index類型的列的集合
df.index 索引名,返回Index類型的索引的集合
df.shape 返回tuple,行x列
df.head(n=N) 返回前N條
df.tail(n=M) 返回后M條
df.values 值的二維數(shù)組,以numpy.ndarray對(duì)象返回
df.index DataFrame的索引,索引不可以直接賦值修改
df.reindex(index=['row1', 'row2',...]
columns=['col1', 'col2',...]) 根據(jù)新索引重新排序
df[m:n] 切片,選取m~n-1行
df[df['col1'] > 1] 選取滿足條件的行
df.query('col1 > 1') 選取滿足條件的行
df.query('col1==[v1,v2,...]')
df.ix[:,'col1'] 選取某一列
df.ix['row1', 'col2'] 選取某一元素
df.ix[:,:'col2'] 切片選取某一列之前(包括col2)的所有列
df.loc[m:n] 獲取從m~n行(推薦)
df.iloc[m:n] 獲取從m~n-1行
df.loc[m:n-1,'col1':'coln'] 獲取從m~n行的col1~coln列


sr=df['col'] 取某一列,返回Series
sr.values Series的值,以numpy.ndarray對(duì)象返回
sr.index Series的索引,以index對(duì)象返回

5 數(shù)據(jù)運(yùn)算與排序

df.T DataFrame轉(zhuǎn)置
df1 + df2 按照索引和列相加,得到并集,NaN填充
df1.add(df2, fill_value=0) 用其他值填充
df1.add/sub//mul/div 四則運(yùn)算的方法
df - sr DataFrame的所有行同時(shí)減去Series
df * N 所有元素乘以N
df.add(sr, axis=0) DataFrame的所有列同時(shí)減去Series


sr.order() Series升序排列
df.sort_index(aixs=0, ascending=True) 按行索引升序
df.sort_index(by=['col1', 'col2'...]) 按指定列優(yōu)先排序
df.rank() 計(jì)算排名rank值

6 數(shù)學(xué)統(tǒng)計(jì)

sr.unique Series去重
sr.value_counts() Series統(tǒng)計(jì)頻率,并從大到小排序,DataFrame沒(méi)有這個(gè)方法
sr.describe() 返回基本統(tǒng)計(jì)量和分位數(shù)

df.describe() 按各列返回基本統(tǒng)計(jì)量和分位數(shù)
df.count() 求非NA值得數(shù)量
df.max() 求最大值
df.min() 求最大值
df.sum(axis=0) 按各列求和
df.mean() 按各列求平均值
df.median() 求中位數(shù)
df.var() 求方差
df.std() 求標(biāo)準(zhǔn)差
df.mad() 根據(jù)平均值計(jì)算平均絕對(duì)利差
df.cumsum() 求累計(jì)和
sr1.corr(sr2) 求相關(guān)系數(shù)
df.cov() 求協(xié)方差矩陣
df1.corrwith(df2) 求相關(guān)系數(shù)

pd.cut(array1, bins) 求一維數(shù)據(jù)的區(qū)間分布
pd.qcut(array1, 4) 按指定分位數(shù)進(jìn)行區(qū)間劃分,4可以替換成自定義的分位數(shù)列表

df['col1'].groupby(df['col2']) 列1按照列2分組,即列2作為key
df.groupby('col1') DataFrame按照列1分組
grouped.aggreagte(func) 分組后根據(jù)傳入函數(shù)來(lái)聚合
grouped.aggregate([f1, f2,...]) 根據(jù)多個(gè)函數(shù)聚合,表現(xiàn)成多列,函數(shù)名為列名
grouped.aggregate([('f1_name', f1), ('f2_name', f2)]) 重命名聚合后的列名
grouped.aggregate({'col1':f1, 'col2':f2,...}) 對(duì)不同的列應(yīng)用不同函數(shù)的聚合,函數(shù)也可以是多個(gè)


df.pivot_table(['col1', 'col2'],
rows=['row1', 'row2'],
aggfunc=[np.mean, np.sum]
fill_value=0,
margins=True) 根據(jù)row1, row2對(duì)col1, col2做分組聚合,聚合方法可以指定多種,并用指定值替換缺省值


pd.crosstab(df['col1'], df['col2']) 交叉表,計(jì)算分組的頻率

總結(jié)

以上就是本文關(guān)于Python pandas常用函數(shù)詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • python psutil 模塊概述及使用示例

    python psutil 模塊概述及使用示例

    psutil是一個(gè)跨平臺(tái)的Python庫(kù),用于系統(tǒng)監(jiān)控、性能分析和進(jìn)程管理,它提供了豐富的API,可用于獲取系統(tǒng)的CPU、內(nèi)存、磁盤(pán)、網(wǎng)絡(luò)等資源的使用情況,以及進(jìn)行進(jìn)程管理,psutil支持Linux、Windows、macOS等主流操作系統(tǒng)
    2024-11-11
  • numpy中索引和切片詳解

    numpy中索引和切片詳解

    這篇文章主要介紹了numpy中索引和切片詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python除法之傳統(tǒng)除法、Floor除法及真除法實(shí)例詳解

    Python除法之傳統(tǒng)除法、Floor除法及真除法實(shí)例詳解

    本文通過(guò)實(shí)例代碼給大家介紹了Python除法之傳統(tǒng)除法、Floor除法及真除法,需要的朋友可以參考下
    2019-05-05
  • python中內(nèi)置函數(shù)ord()返回字符串的ASCII數(shù)值實(shí)例詳解

    python中內(nèi)置函數(shù)ord()返回字符串的ASCII數(shù)值實(shí)例詳解

    ord()?函數(shù)是?chr()?函數(shù)(對(duì)于?8?位的?ASCII?字符串)的配對(duì)函數(shù),它以一個(gè)字符串(Unicode?字符)作為參數(shù),返回對(duì)應(yīng)的?ASCII?數(shù)值,或者?Unicode?數(shù)值,這篇文章主要介紹了python?中內(nèi)置函數(shù)ord()返回字符串的ASCII數(shù)值,需要的朋友可以參考下
    2022-07-07
  • baselines示例程序train_cartpole.py的ImportError

    baselines示例程序train_cartpole.py的ImportError

    這篇文章主要為大家介紹了baselines示例程序train_cartpole.py的ImportError引入錯(cuò)誤詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python調(diào)用微信公眾平臺(tái)接口操作示例

    Python調(diào)用微信公眾平臺(tái)接口操作示例

    這篇文章主要介紹了Python調(diào)用微信公眾平臺(tái)接口操作,結(jié)合具體實(shí)例形式分析了Python針對(duì)微信接口數(shù)據(jù)傳輸?shù)南嚓P(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • python--字典(dict)和集合(set)詳解

    python--字典(dict)和集合(set)詳解

    本文通過(guò)實(shí)例給大家介紹了python中字典和集合的知識(shí)小結(jié),非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧,希望能夠給你帶來(lái)幫助
    2021-09-09
  • python+matplotlib繪制簡(jiǎn)單的海豚(頂點(diǎn)和節(jié)點(diǎn)的操作)

    python+matplotlib繪制簡(jiǎn)單的海豚(頂點(diǎn)和節(jié)點(diǎn)的操作)

    這篇文章主要介紹了python+matplotlib繪制簡(jiǎn)單的海豚(頂點(diǎn)和節(jié)點(diǎn)的操作),具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • python讀寫(xiě)excel數(shù)據(jù)--pandas詳解

    python讀寫(xiě)excel數(shù)據(jù)--pandas詳解

    這篇文章主要為大家詳細(xì)介紹了python操作EXCEL讀數(shù)據(jù)、寫(xiě)數(shù)據(jù)的實(shí)例源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 詳解Python3中的多重繼承和混入類

    詳解Python3中的多重繼承和混入類

    Python原生支持多重繼承,這使得我們可以從多個(gè)父類中繼承屬性和方法,在本文中,我們將介紹Python中多重繼承的概念,并討論在實(shí)際情況下可能遇到的坑,我們還將討論如何使用混入類來(lái)避免這些問(wèn)題,需要的朋友可以參考下
    2023-05-05

最新評(píng)論