1.处理缺失值数据
使用dropna()时,注意里面参数axis、how、thresh的用法
使用fillna()时,注意里面参数value、method、inplace、limit的用法
2.数据转换
去重
data.drop_duplicates(keep='last')#注意keep的用法
映射
map()针对的是一维数组series,后面跟函数表示对整个一维数组执行的操作
apply()在针对一维数组时作用与map相同,在针对DataFrame数组时是对某一行或某一列进行操作,输出的是一列或一行的结果
applymap()是针对DataFrame的整个数据的操作
替换值
replace()
重命名轴索引
rename()注意rename对列名的修改,后面跟上字典实现
astype()转换数据类型
离散化和面元划分
cats=pd.cut(data,bins,right=False,labels=name)#按照bins里面的区间,把data数据集里面的数据划分到不同的区间,实现离散化,right修改闭端位置
pd.cut(data,4,precision=2)#传入数字则根据数据分位数进行几等分,precision保留小数个数
pd.value_counts(cats)#划分结果计数
pd.qcut()
检测和过滤异常值
data.describe()#数据现行,无处可逃
data[2][np.abs(data[2])>3]#选出2这一列中绝对值大于3的数
data[(np.abs(data)>3).any(1)]#选出绝对值大于3的数所在的行
np.sign(data)#根据数值的正负生成1或-1
排列和随机采样
sampler=np.random.permutation(5)
df.take(sampler)
#实现对df的重新排列,相当于按轴索引随机排列
计算指标、哑变量
get_dummies()#没看太懂,研究中
3.字符串的操作
val.split(',')#把字符串val按‘,’分成数段
pieces=[x.strip() for x in val.split(',')]#可去除空格和换行
'::'.join(pieces)#拼接
val.index('a') val.find('a')#查找字符串
val.count('a')#统计出现次数
val.replace()#替换
还有一些关于正则表达式的方法
矢量化字符串的方法
4.连接数据
横向连接
pd.mager(data1,data2,on='key',how='left')#jion也可以实现
轴向连接
pd.concat()
5.重塑
stack:将数据的列旋转成行
unstack:将数据的行旋转成列
pivot与melt也互为相反操作,作用类似
6.时间序列
datetime.strptime可以⽤这些格式化编码将字符串转换为⽇期: