python数据处理(2)

离散化和分箱

ages=[20,22,25,27,21,23,37,31,61,45,41,32]
bins=[18,25,35,60,100]
cats=pd.cut(ages,bins)
print(cats)
print(cats.codes)  # 分箱的箱子数(0,1,2...)
print(cats.categories)
cc=pd.value_counts(cats)  # 每个箱子的个数
print(cc)

group_name=['Youth','YoungAdult','MiddleAged','Senior']
pp=pd.cut(ages,bins,labels=group_name)
print(pp)

data=np.random.rand(20)
dd=pd.cut(data,4,precision=2)  # 只是分成四份,数量不一定相等
print(dd)

qcut:分箱密切相关的函数:分位数,整数则分成同数量的几等分区间,分位数(0-1之间)分位点数

data=np.random.randn(1000)
ss=pd.qcut(data,4)
print(ss)
sc=pd.value_counts(ss)
print(sc)

检测和过滤异常值

data=pd.DataFrame(np.random.randn(1000,4))
print(data.describe())

col=data[2]
g=col[np.abs(col)>3]
print(g)
#如果要选择所有值大于3 or 小于-3的行,使用any方法
print(data[(np.abs(data)>3).any(1)])

置换和随机抽样

使用np.random.permutation对DataFrame和Series进行置换

df=pd.DataFrame(np.arange(5*4).reshape((5,4)))
sampler=np.random.permutation(5)
print(sampler)
print(df)
qq=df.take(sampler)
print(qq)

choices=pd.Series([-7,5,7,4,3,2])
draws=choices.sample(n=20,replace=True)
print(draws)

猜你喜欢

转载自blog.csdn.net/weixin_43408110/article/details/87819800
今日推荐