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...