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)

你可能感兴趣的:(读书笔记)