01.data process
1.删除重复行
删除重复行的处理步骤:
1.判断重复项
2.重复项处理:
1/ 取非重复项
cond = df.duplicated() # 参数:keep=last/subset=['A', 'B', 'C']
2/ 删除重复项
df.loc[~cond]/df.drop_duplicates()
2. 映射
2.1 替换元素
df.replace({20: 100, 'a': 'c'})
2.2 新建一列
df['python'] = df['math'].map({130:100, 110: 90}) # 参数还可以lambda x:x*2 和 fn
2.3 替换索引
df.rename(index={'张三': 'zhangsan'}, columns={'数学': 'math'})
3.异常值的检测和过滤
1. 检测
cond = df.abs()>3*df.std()
cond = cond.any(axis=1)
cond
2.过滤
df.loc[~cond]
4. 抽样
df.take([1, 0, 2, 3], axis=0) # 参数还可以np.random.permutation([0, 1, 2, 3], axis=0) 和 np.random.randint(0, 4, size=4)
5.数据聚合
df.groupby(by=‘color’)[[‘price’]].sum().loc[[‘白’]]
transform和apply:以下三个指令等效
weight_sum = df.groupby(by=‘item’)[[‘weight’]].sum()
weight_sum2 = df.groupby(by=‘item’)[[‘weight’]].transform(sum)
weight_sum3 = df.groupby(by=‘item’)[[‘weight’]].apply(sum)
- 高级数据聚合
weight_sum.add_prefix(‘abc_’) # 加前缀
weight_sum.add_suffix(’_sum’) # 加后缀