文章目录
写在前面
该篇博客用来记录数据挖掘比赛中常用的pandas 处理技巧 实时更新
1.pandas apply applymap map 的使用
apply表示沿着dataFrame某一个轴执行函数 默认axies=0 即对每一列的所有行进行某一运算
如果axies=1 则对每一行的所有列进行某一运算
例:
In [116]: frame = DataFrame(np.random.randn(4, 3), columns=list('bde'), index=['Utah', 'Ohio', 'Texas', 'Oregon'])
In [117]: frame
Out[117]:
b d e
Utah -0.029638 1.081563 1.280300
Ohio 0.647747 0.831136 -1.549481
Texas 0.513416 -0.884417 0.195343
Oregon -0.485454 -0.477388 -0.309548
In [118]: f = lambda x: x.max() - x.min()
In [119]: frame.apply(f)
Out[119]:
b 1.133201
d 1.965980
e 2.829781
dtype: float64
def change(x):
if x.find('iphone')==0:
x='apple'
return x
traindata['make']=traindata['make'].apply(lambda x: change(x))
applymap是对dataFrame中每一个元素都进行该操作
map是对Series中的每一个元素都进行该操作
2. csr csc 稀疏矩阵
在进行feature engineing 之后会产生很多feature位置为0的数据,这时候使用稠密矩阵存储会浪费很多空间 所以可以转化为稀疏矩阵 这里主要使用csr和csc这两种稀疏矩阵
csr稀疏矩阵 :存储3行数据 第一行数据是row的偏移量 即每一行和其前面所有行非零特征的总和 (总共有行数加1个元素 从第0行开始计算)
第二行数据为 每一个非零数据的列的index