python文件去重函数 python去重和排序

Python 去重,统计,lambda函数df.drop_duplicates('item_name')
方法一:
df.drop_duplicates('item_name').count()
方法二:
df['item_name'].nunique()
结果:50
附:nunique()和unique()的区别:
unique()是以 数组形式(numpy.ndarray)返回列的所有唯一值(特征的所有唯一值)
nunique()即返回的是唯一值的个数
比如:df['item_name'].unique()
要求:将下表中经验列将按周统计的转换为经验不限,保留学历
df1['经验'] = df1['经验'].apply(lambda x: '经验不限'+ x[-2:] if '周' in x else x)
#解释:将‘5天/周6个月’变成‘经验不限’,然后保留学历‘本科’
方法二:定义函数
def dataInterval(ss):
if '周' in ss:
return '经验不限'+ ss[-2:]
return ss
df1['经验'] = df1['经验'].apply(dataInterval)
python中对list去重的多种方法python中对list去重python文件去重函数的多种方法
今天遇到一个问题python文件去重函数,在同事随意的提示下,用了 itertools.groupby 这个函数 。不过这个东西最终还是没用上 。
问题就是对一个list中的新闻id进行去重 , 去重之后要保证顺序不变 。
直观方法
最简单的思路就是:
这样也可行,但是看起来不够爽 。
用set
另外一个解决方案就是用set:
代码如下:
ids = [1,4,3,3,4,2,3,4,5,6,1]
ids = list(set(ids))
这样的结果是没有保持原来的顺序 。
按照索引再次排序
最后通过这种方式解决:
代码如下:
ids = [1,4,3,3,4,2,3,4,5,6,1]
news_ids = list(set(ids))
news_ids.sort(ids.index)
使用itertools.grouby
文章一开始就提到itertools.grouby, 如果不考虑列表顺序的话可用这个:
代码如下:
ids = [1,4,3,3,4,2,3,4,5,6,1]
ids.sort()
it = itertools.groupby(ids)
for k, g in it:
print k
关于itertools.groupby的原理可以看这里:
网友补充:用reduce
网友reatlk留言给了另外的解决方案 。python文件去重函数我补充并解释到这里:
代码如下:
In [5]: ids = [1,4,3,3,4,2,3,4,5,6,1]
In [6]: func = lambda x,y:x if y in x else x + [y]
In [7]: reduce(func, [[], ] + ids)
Out[7]: [1, 4, 3, 2, 5, 6]
上面是我在ipython中运行的代码 , 其中的 lambda x,y:x if y in x else x + [y] 等价于 lambda x,y: y in x and x or x+[y]。
python删除重复数据利用集合的不重复属性,可以先转换至集合,再用list()函数转换回来即可 。
比如,a是一个列表,a=list(set(a)),即可完成列表去重 。
Python常用的几种去重方法case1:用集合的特性set() , 去重后顺序会改变
case1.1:可以通过列表中索引(index)的方法保证去重后的顺序不变
case2:使用循环查找的方式,不改变顺序
case3:通过删除索引
case4:itertools.groupby
case5:fromkeys
case6:reduce方法
python去重(汉字一样,里面的编码不一样)?这是一个字符串python文件去重函数的全角和半角python文件去重函数的问题python文件去重函数,可以导入 unicodedata 中的 normalize 函数先把全角转换为半角python文件去重函数,然后再用 set 对列表去重,参考代码如下python文件去重函数:
from unicodedata import normalize
list3=['热菜','凉菜','凉菜','硬菜']
set(map(lambda s: normalize('NFKC', s), list3))
输出:
{'硬菜', '热菜', '凉菜'}
扩展:
“ NFKC”代表“Normalization Form KC [Compatibility Decomposition, followed by Canonical Composition]” , 并将全角字符替换为半角字符,这些半角字符与Unicode等价 。
python用drop_duplicates()函数保留数据集的重复行前两天处理数据的时候,需要得到两个数据的交集数据,所以要去除数据中非重复部分,只保留数据中的重复部分 。

推荐阅读