5 Pandas資料處理

2022-06-16 10:00:13 字數 1670 閱讀 7177

np.nan(nan)

object型別相比於int型別運算時消耗時間更長

pandas中的none與nan

df.notnull()

df.isnull().any()

df.isnull().all()

df.notnull().all(axis=1)

df[df.notnull().all(axis=1)]

過濾函式

df.dropna()

df.dropna(axis=1)

也可以選擇過濾的方式 how = 'all'

df.dropna(how='all')

填充函式

df.fillna(method='bfill')

df.fillna(method='ffill')

df.fillna(method='bfill',axis=1)

df.fillna(method='ffill',axis=1)

df.duplicated(subset=['a','b','c'])

刪除重複行

np.logical_not(cond)

對映replace()函式:替換元素

replace還經常用來替換nan元素

map()函式:新建一列(行也可以)

df2['政治'] = df2['語文'].map()

df2['政治'] = df2['語文'].map(lambda x:x*2)

def grade(x):

if x<60:

return '不及格'

elif x<80:

return '及格'

else:

return '優秀'

df2['等級'] = df2['語文'].map(grade)

rename()函式:替換索引

df3.rename(columns=)

df3.rename(,axis=1)

異常值檢測和過濾

df.std()

對每一列應用篩選條件,去除標準差太大的資料

刪除特定索引df.drop(labels, inplace = true)

df22.drop('語文',axis=1)

unique():唯一,去重

df.query:按條件查詢

df22.query('語文 in @list1')

排序df22.sort_values('張三',axis=1)

df22.sort_values('語文',ascending=false)

抽樣隨機排列:打亂順序

df22.take([1,0,2,3])

df22.take([1,0,2,3,4],axis=1)

模擬無放回抽樣,不會拿到重複資料,依次拿去

模擬有放回抽樣,取完乙個之後,可能再次抽到相同的資料

資料聚合

資料分類處理的核心: groupby()函式

df.groupby(by='color')

df.groupby(by='color').groups

df.groupby(by='color').sum()

df.groupby(by='color').mean()

高階資料聚合

transform

用索引合併

5,pandas高階資料處理

使用duplicated 函式檢測重複的行,返回元素為布林型別的series物件,每個元素對應一行,如果該行不是第一次出現,則元素為true keep引數 指定保留哪一重複的行資料 import numpy as np import pandas as pd from pandas import s...

pandas 資料處理

pandas中資料可以分為series,dataframe,panel分別表示一維至三維資料。其中在構造時,index表示行名,columns表示列名 構造方式 s pd.series data index index s pd series np random randn 5 index a b ...

pandas資料處理

dataframe.duplicated subset none,keep first 判斷dataframe中的資料是否有重複 必須一行中所有資料都重複才算重複,只能判斷行,不能判斷列 返回series dataframe.drop duplicates subset none,keep firs...