1. 程式人生 > >python 空值清洗排序

python 空值清洗排序

是否為空值

df.isnull() ##是為空值
df.notnull() ## 不會空值的資料

刪除列

df.drop[‘column.name’]

del row with nan

df.dropna()

del row with definition row

df.dropna(axis=1,thresh=3)

del 重複值項

df.duplicated ##檢查是否有重複
df.drop_duplicated() ## 刪除行
df.drop_duplicated([‘a’]) ##按照某列的重複值進行刪除

fill na

df.fillna(0)
df.fillna({1:0,2:0.5})
df.fillna(method=’ffill’) 上面的值填充給nan

order

row and index for order
df.sort_index() ## 進行rowid 進行排序
df.sort_index(axis=1,ascending=False) ##進行降序排序
df.sort_index(by=[‘col1’]) ## 按名稱進行排序
df.sort_index(by=[‘col1’,‘col2’]) ## 按名稱進行排序
df.sort_index(axis=1) ## 按行進行排序

caculate

df.sum()
df.mean()
df.sum(axis=1) ##對行進行求和

map(將一些值對映進行變換)

condition={‘a’:1,’b’:2,’c’:3}
1)df[‘a’]=df[‘b’].map(condition)
2)df[‘a’]=df[‘b’].map(lambda x: x/2)

rename

df.rename(columns={‘a’:’b’},inplace=True) ## 將a改成b

離散化 function:cut

eg:age=[22,23,23,25,25,26,46,75,34,67,34,98,67]
bins=[18,25,35,60,90]
cats=pd.cut(age,bins) ##將age 以bin的區間進行劃分
cats=pd.cut(age,bins,right=False) ##將age 以bin的區間進行劃分,且右側不包括在內

group_name=[‘Y’,’M’,’S’,’O’] ## bin有幾個區間起幾個名詞
cats=pd.cut(age,bins,labels=group_name) ##將每組進行自定義一個名稱
結果 cat([‘Y’,’Y’,’Y’,’Y’,’Y’,’M’…])

生成隨機數 function

sp=np.random.permutation(5)
sp:array(1,0,2,3,4)
df.take(sp) ##將這些資料給取出

dummys 生成亞變數

df[‘m’]=[‘a’,’a’,’b’,’b’,’b’,’a’,’a’]
dummy=pd.get_dummies(df[‘a’]) ##生成亞變數
dummy=pd.get_dummies(df[‘a’]。prefix=’key’) ##生成亞變數,並以key進行每列起名稱 m_a,m_b
將表進行整合
df=df.join(dummy)