1.数据框模糊查询
数据框查询使用contains函数+正则表达式来实现。
语法格式如下:
data[data.列名.str.contains()]
1.1查询以某某开头的数据
data[data.列名.str.contains('^某某')]
1.2查询包含某某的数据
data[data.列名.str.contains('某某')]
1.3查询以某某结尾的数据
data[data.列名.str.contains('某某$')]
上述dataframe模糊查询是针对某列数据元素格式全为str格式,方可使用该方法!
若遇到下面这样的报错:
valueerror: cannot mask with non-boolean array containing na / nan values
可能某列数据元素格式不全是str格式,可能存在int格式等等,因此把某列的数据格式统一成str格式就可以了!
解决方法如下:
data['列名']=data['列名'].apply(str)#把非字符串格式改为字符串格式
1.4多条件查询
data[data.source.str.contains('某某|某某1')]
1.5对条件查询结果进行删除
data[-data.source.str.contains('某某|某某1')]
2.数据框去重
数据框去重使用drop_duplicates函数可以按某列去重,也可以按多列去重。
语法格式如下:
dataframe.drop_duplicates(subset=none,keep='first',inplace=false)
参数解析:
dataframe
:待去重的数据框。subset
:用来指定特定的列。根据指定的列对数据框去重。默认值为none,即dataframe中一行元素全部相同时才去除。keep
:对重复值的处理方式。可选参数有first,last,false。默认值first,即保留重复数据第一条。若选last为保留重复数据的最后一条,若选false则删除全部重复数据。inplace
:是否在原数据集上操作。默认值false,返回新数据框(原数据框不改变)。值为true时直接在原数据视图上删重,没有返回值。
2.1按某列去重
data.drop_duplicates(subset='列名',keep='first',inplace=false)
2.2按多列去重
data.drop_duplicates(subset=['列名','列名1'],keep='first',inplace=false)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论