drop(labels, axis, index, columns) 删除行或列
drop(axis, how=‘any’) 删除空白值
drop_duplicates(keep=‘first’) 查询重复的行
注意:如果使用pd.concat(df1, df2, axis=1) 生成新的DataFrame中在columns列标签相同时,duplicated()和drop_duplicates()都会出现问题
删除行或列
- df.drop(labels, axis, index, columns, inplace=False)
- label 是索引标签, 可以是行或列的索引标签
- axis 0表示行, 1表示列
- index 表示行索引标签的列表, 也可以是单行
- columns 表示列索引标签的列表, 也可以是单列
- inplace True表示修改原表,False表示修改副本
replace(to_replace, value)函数:替换元素
### 数值映射操作
- series.replace()
- df.replace()
#### 映射操作的分类
- 单值映射
- 多值映射
- list
- dict
- 填充映射
- method
- limit
Series替换操作
s2 = Series(['Disen', 20, None, '西安'])
s2.replace(to_replace='Disen', value='狄哥')
s2.replace(to_replace=[None], value='女')
注:None值必须要以 [ ] 指定
可以直接用np.nan
s2.replace(to_replace=[None, 'Disen'], value=['男', '战神'])
s2.replace(['刘备', 'Disen'], ['没有', '刘备的主公']) -- 不存在的“刘备”,不做任何操作
s2.replace({'Disen': '狄森', 20: 30}) -- 单字典替换
s2[:3] = 'Disen'
s2.replace('Disen', method='bfill', limit=1) -- 向前邻近填充1次
DataFrame替换操作
s3 = DataFrame(np.random.randint(1, 100, size=(5,5)), columns=tuple('ABCDE'))
s3.loc[0, 'D'] = 'disen'
s3.loc[1, 'B'] = 'disen'
s3.replace({'D': 'disen'}, '战神') D为列名, 'disen'为列值, 替换成“战神”
map()函数:新建一列
map中返回的数据是一个具体值,不能迭代
# 映射新的一列数据
s['性别'] = s['甲'].map({
'Disen': '男',
'Jack': '女',
'Judy': '女',
'Mack': '男',
'Rose': '女'
})
### map映射操作
> 以现有的列值根据计算或操作得出新的结果
- dict方式
- lambda方式
- 自定义函数方式
transform()与map()类似,但是 transform()中不能使用字典。
rename()标签重命名
- index 替换索引
- columns 替换列索引
- level 指定多维索引的维度
例:
score2.rename({
'H5': 'HTML',
'JS': 'JavaScript',
}, inplace=False, axis=1)
- df.describe() 每一列数据的分布情况
- df.std() 每一列的标准差
- df|s.any() 对每一列应用筛选条件
使用.take(indices, axis)函数排列
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zNRiosq3-1570710108363)(C:\Users\qy\AppData\Roaming\Typora\typora-user-images\1570709510497.png)]
persons.take(indices=[0, 3, 2, 1], axis=1) # 0 3 2 1 分别代表列索引
# 将行索引标签进行打乱
index = np.random.permutation(persons.index)
index
persons.groupby(by='入职时间')['薪资'].mean()
可以使用pd.merge()函数 将聚合操作的计算结果添加到df的每一行
可以使用transform和apply实现相同功能
transform会自动列索引返回值, 不去重
apply会根据分组情况返回值, 去重
transform指定函数接收的参数是Series对象
apply指定函数接收的参数是DataFrame类型
transform会自动列索引返回值, 不去重
apply会根据分组情况返回值, 去重
transform指定函数接收的参数是Series对象
apply指定函数接收的参数是DataFrame类型