python函数去重博客,Python去重
Python 去重,统计,lambda函数
df.drop_duplicates('item_name')
成都创新互联公司成立于2013年,先为万州等服务建站,万州等地企业,进行企业商务咨询服务。为万州企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
方法一:
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去重(汉字一样,里面的编码不一样)?
这是一个字符串的全角和半角的问题,可以导入 unicodedata 中的 normalize 函数先把全角转换为半角,然后再用 set 对列表去重,参考代码如下:
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中对list去重的多种方法
python中对list去重的多种方法
今天遇到一个问题,在同事随意的提示下,用了 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留言给了另外的解决方案。我补充并解释到这里:
代码如下:
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。重复元素判定。编写一个函数,接受列表作为参数
代码如下:
def func1(num_list):
if len(num_list) != len(set(num_list)):
return True
else:
return False
if __name__ == '__main__':
num_list = [[1, 2, 3, 4], [6, 7, 8], [4, 5, 6, 6, 6]]
for one_list in num_list:
print(func1(one_list))
运行结果:
扩展资料
python对列表去重的几种方式:
1、直观方法,先建立一个新的空列表,通过遍历原来的列表,再利用逻辑关系not in 来去重。总结:这样可以做出来,但是过程不够简单。但是此方法保证了列表的顺序性。
2、利用set的自动去重功能,将列表转化为集合再转化为列表,利用集合的自动去重功能。简单快速。缺点是:使用set方法无法保证去重后的顺序。
参考资料:python官网-Doc语法文档
分享标题:python函数去重博客,Python去重
网站链接:http://hbruida.cn/article/dsiojgc.html