免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1730 | 回复: 3

[文本处理] 在多列数据中查找相同字符串 [复制链接]

论坛徽章:
18
2015年迎新春徽章
日期:2015-03-04 10:16:53操作系统版块每日发帖之星
日期:2016-05-11 06:20:0015-16赛季CBA联赛之佛山
日期:2016-05-06 22:28:4415-16赛季CBA联赛之广夏
日期:2016-04-22 23:24:00操作系统版块每日发帖之星
日期:2016-04-21 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44操作系统版块每日发帖之星
日期:2016-02-03 06:20:00IT运维版块每日发帖之星
日期:2016-01-31 06:20:00IT运维版块每日发帖之星
日期:2016-01-30 06:20:00IT运维版块每日发帖之星
日期:2016-01-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-23 06:20:00操作系统版块每日发帖之星
日期:2015-11-26 06:20:00
发表于 2019-05-17 10:37 |显示全部楼层
有一个含有35列数据的表格(txt0,要统计出所有35列中都包含的相同字符串有哪些? Book1.xlsx.tar.gz (173 Bytes, 下载次数: 12)

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
发表于 2019-05-17 14:12 |显示全部楼层
python,每列生成一个集合,所有集合做交集运算,最后结果就是所有列都包含的。
  1. import functools as ft

  2. file = "DEGALL2.txt"
  3. sets = [set() for i in range(0,35)] #生成35个空集合

  4. def main():
  5.     with open(file,"r") as f:
  6.         for line in f:
  7.             words=line.rstrip("\n").split("\t") #去换行符,分割到列表
  8.             for i in range(0,35):    #每列添加到对应集合
  9.                 sets[i].add(words[i])

  10.     res = ft.reduce(lambda x,y:x&y,sets) #所有集合做交集运算
  11.     if res:
  12.         for i in res:
  13.             print(i)
  14.     else:
  15.         print("无相同结果")

  16. if __name__ == "__main__":
  17.     main()
复制代码

你的示例文件,我试了一下,一个相同的都没有。仅供参考。

论坛徽章:
18
2015年迎新春徽章
日期:2015-03-04 10:16:53操作系统版块每日发帖之星
日期:2016-05-11 06:20:0015-16赛季CBA联赛之佛山
日期:2016-05-06 22:28:4415-16赛季CBA联赛之广夏
日期:2016-04-22 23:24:00操作系统版块每日发帖之星
日期:2016-04-21 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44操作系统版块每日发帖之星
日期:2016-02-03 06:20:00IT运维版块每日发帖之星
日期:2016-01-31 06:20:00IT运维版块每日发帖之星
日期:2016-01-30 06:20:00IT运维版块每日发帖之星
日期:2016-01-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-23 06:20:00操作系统版块每日发帖之星
日期:2015-11-26 06:20:00
发表于 2019-05-20 08:59 |显示全部楼层
回复 2# cfwyy

多谢!还是会Python好

论坛徽章:
0
发表于 2019-05-20 11:41 |显示全部楼层
感谢2楼分享解体代码,拓展了我的思路。我也分享个powershell交集例子。
  1. PS A:\pscode>
  2. PS A:\pscode> [System.Collections.Generic.HashSet[int]]$a = 1,2,3,4,5
  3. PS A:\pscode> [System.Collections.Generic.HashSet[int]]$b = 4,5,6,7,8
  4. PS A:\pscode> $交集或叫做2集合只取重复= New-Object   System.Collections.Generic.HashSet[int]($a)
  5. PS A:\pscode> $交集或叫做2集合只取重复.IntersectWith($b)
  6. PS A:\pscode> '交集或叫做2集合只取重复',$交集或叫做2集合只取重复
复制代码


返回:
交集或叫做2集合只取重复
4
5
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP