数据挖掘中的常用预处理操作

主要是pandas中的操作,需要一定pandas基础:

1    提取某列数据中包含':'的,返回ture,false,nan
如:[data[label].str.contains(':')]

2    dataframe 用astype(str)实现类型转换

3    实现某种分割提取可用 pandas   str的内置方法
如df.str.split(':')

4    df.iloc[0:10]实现按行索引

5    df.groupby('product')['product'].count()
统计'product'每类有出现多少次

6    通过函数筛选label满足s1<label<s2条件的dataframe条目
data[data[label].map(lambda x: True if  s1<= str(x) <= s2 False)]

7    通过构建mask选出满足条件的条目    
  mask=list(map(lambda x, y: True if x ==1  and y != 1 else False,[1,2,3],[3,2,1]))
 [True, False, False]

8    from collections import Counter
 c = Counter('abcasd')        (也可以加.tiems())返回Counter({'a': 2, 'c': 1, 'b': 1, 's': 1, 'd': 1})


9    df['key1'].unique().reset_index(drop=True)
统计该项中有多少不同项

10    data=df[[label]].drop_duplicates([label])
        提取一列中不同的项(可作为索引)

11    df.fillna(-1,inplace=True)
填充并覆盖原来的df(默认为创建新的),如果使用inplace=Ture则返回值为NoneType

12    保存数据为某种格式

        np.savetxt('xgb_submission.csv',np.c_[range(1,len(tests)+1),preds],delimiter=',',header='ImageId,Label',comments='',fmt='%d')

13 得到某列的值
.get_values()  (或者.values)


14 groupby重点(nunique()很特殊)
1)groupby([label1,label2])[label3].nunique()#.reset_index
 以label1,label2作为索引(1为单,2为多),label1和label2存在,若加上reset_index后有序号索引(1,2多)
2)groupby([label1,label2],as_index=False)[label3].nunique()
 (label1,label2)都不存在,只有索引号和计数

3)groupby()和sum()结合,
groupby([label1,label2],as_index=False)[label3].sum()
不加as_index效果同nuique,加上as_index(或者reset_index())则自动有序号

---------------------
原文:https://blog.csdn.net/sinat_36256646/article/details/80530415

猜你喜欢

转载自blog.csdn.net/qq_36162275/article/details/87966348
今日推荐