鱼C论坛

 找回密码
 立即注册
查看: 2128|回复: 9

[已解决]老污龟们,我想用pyhthon统计excel表格内的重读数据并赋值到新的表格里,应该怎么做

[复制链接]
发表于 2020-11-12 16:11:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #coding=gbk

  2. import openpyxl

  3. from openpyxl.utils import column_index_from_string

  4. filename = r'./waf策略统计.xlsx'

  5. tongji = openpyxl.load_workbook( filename )

  6. #——————————————服务器ip:10.254.221.140————————————————————————————————————————

  7. tongji1 = tongji['Sheet1']

  8. maxtongji_hang = tongji1.max_row

  9. daochu = openpyxl.load_workbook( r'./waf导出日志.xlsx' )

  10. daochu1 = daochu['Sheet1']

  11. maxdaochu_hang = daochu1.max_row

  12. maxdaochu_lie = daochu1.max_column

  13. for i in range(2,maxdaochu_hang + 1):
  14.        
  15.         tongji1.cell(maxtongji_hang + 1,column_index_from_string('A')).value = maxtongji_hang + 0
  16.        
  17.        
  18.         if daochu1.cell(i,column_index_from_string('C')).value == '10.254.221.140':
  19.                
  20.                
  21.                 tongji1.cell(2,column_index_from_string('B')).value = daochu1.cell(i,column_index_from_string('C')).value

  22.                
  23.                
  24.        
  25.         maxtongji_hang += 1
  26.        
  27.        
  28.        
  29.        
  30.        
  31.        
  32. tongji.save('./xin.xlsx')       
复制代码


比如我想统计导出日志的表格内10.254.221.140这个ip,总共出现多少次应该怎么写,本人小白,求大佬鞭策
最佳答案
2020-11-12 17:44:55
本帖最后由 逃兵 于 2020-11-12 17:46 编辑

下班了,明天再说

  1. #coding=gbk

  2. import openpyxl

  3. from openpyxl.utils import column_index_from_string

  4. filename = r'./waf策略统计.xlsx'

  5. tongji = openpyxl.load_workbook( filename )

  6. #——————————————服务器ip:10.254.221.140————————————————————————————————————————

  7. tongji1 = tongji['Sheet1']

  8. maxtongji_hang = tongji1.max_row

  9. daochu = openpyxl.load_workbook( r'./waf导出日志.xlsx' )

  10. daochu1 = daochu['Sheet1']

  11. maxdaochu_hang = daochu1.max_row

  12. maxdaochu_lie = daochu1.max_column

  13. for i in range(2,maxdaochu_hang + 1):
  14.         
  15.         tongji1.cell(maxtongji_hang + 1,column_index_from_string('A')).value = maxtongji_hang + 0
  16.         
  17.         
  18.         if daochu1.cell(i,column_index_from_string('C')).value == '10.254.221.140':
  19.                
  20.                
  21.                 tongji1.cell(2,column_index_from_string('B')).value = daochu1.cell(i,column_index_from_string('C')).value

  22.                
  23.                
  24.         
  25.         maxtongji_hang += 1
  26.         
  27. times = 0
  28. file_value={}
  29. for each in daochu1['C']:
  30.         if each.value == '10.254.221.140':
  31.                 times+=1
  32. print(times)
  33. tongji.active['K2']=times



  34.         
  35.         
  36.         
  37. tongji.save('./waf策略统计.xlsx')        
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-12 16:24:19 | 显示全部楼层
本帖最后由 mb0221 于 2020-11-12 16:36 编辑

在线急,等!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-12 16:52:58 | 显示全部楼层
本帖最后由 逃兵 于 2020-11-12 17:01 编辑

中间加了几行代码,是要统计这个吗

  1. #coding=gbk

  2. import openpyxl

  3. from openpyxl.utils import column_index_from_string

  4. filename = r'./waf策略统计.xlsx'

  5. tongji = openpyxl.load_workbook( filename )

  6. #——————————————服务器ip:10.254.221.140————————————————————————————————————————

  7. tongji1 = tongji['Sheet1']

  8. maxtongji_hang = tongji1.max_row

  9. daochu = openpyxl.load_workbook( r'./waf导出日志.xlsx' )

  10. daochu1 = daochu['Sheet1']

  11. maxdaochu_hang = daochu1.max_row

  12. maxdaochu_lie = daochu1.max_column

  13. for i in range(2,maxdaochu_hang + 1):
  14.         
  15.         tongji1.cell(maxtongji_hang + 1,column_index_from_string('A')).value = maxtongji_hang + 0
  16.         
  17.         
  18.         if daochu1.cell(i,column_index_from_string('C')).value == '10.254.221.140':
  19.                
  20.                
  21.                 tongji1.cell(2,column_index_from_string('B')).value = daochu1.cell(i,column_index_from_string('C')).value

  22.                
  23.                
  24.         
  25.         maxtongji_hang += 1
  26.         
  27. times = 0
  28. file_value={}
  29. for each_line in daochu1:
  30.         for each in each_line:
  31.                 if each.value != None:
  32.                         file_value[each] = str(each.value)
  33. for i in file_value:
  34.         if '10.254.221.140' in file_value[i]:
  35.                 times+=1
  36.                 print('10.254.221.140 出现了%s次'%times)
  37.                 print(i)


  38.         
  39.         
  40.         
  41. tongji.save('./xin.xlsx')        
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-12 17:09:43 | 显示全部楼层
逃兵 发表于 2020-11-12 16:52
中间加了几行代码,是要统计这个吗

哇,太厉害了大佬,我百度了一天了没结果,差不多,我就想统计C列的话,然后把统计出来的次数,放到tongji表格的第二行K列,应该怎么写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-12 17:15:54 | 显示全部楼层
有点敏感,这样发个列子可以脑补一下,多谢大佬们理解
站点ID        防护对象ID        服务器IP
1559642578        2594951412        10.254.221.140
xxxx                  xxxx                  下面有重复的还有不同的ip地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-12 17:44:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 逃兵 于 2020-11-12 17:46 编辑

下班了,明天再说

  1. #coding=gbk

  2. import openpyxl

  3. from openpyxl.utils import column_index_from_string

  4. filename = r'./waf策略统计.xlsx'

  5. tongji = openpyxl.load_workbook( filename )

  6. #——————————————服务器ip:10.254.221.140————————————————————————————————————————

  7. tongji1 = tongji['Sheet1']

  8. maxtongji_hang = tongji1.max_row

  9. daochu = openpyxl.load_workbook( r'./waf导出日志.xlsx' )

  10. daochu1 = daochu['Sheet1']

  11. maxdaochu_hang = daochu1.max_row

  12. maxdaochu_lie = daochu1.max_column

  13. for i in range(2,maxdaochu_hang + 1):
  14.         
  15.         tongji1.cell(maxtongji_hang + 1,column_index_from_string('A')).value = maxtongji_hang + 0
  16.         
  17.         
  18.         if daochu1.cell(i,column_index_from_string('C')).value == '10.254.221.140':
  19.                
  20.                
  21.                 tongji1.cell(2,column_index_from_string('B')).value = daochu1.cell(i,column_index_from_string('C')).value

  22.                
  23.                
  24.         
  25.         maxtongji_hang += 1
  26.         
  27. times = 0
  28. file_value={}
  29. for each in daochu1['C']:
  30.         if each.value == '10.254.221.140':
  31.                 times+=1
  32. print(times)
  33. tongji.active['K2']=times



  34.         
  35.         
  36.         
  37. tongji.save('./waf策略统计.xlsx')        
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-11-12 20:53:33 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-12 21:52:04 | 显示全部楼层
这样的需求?你用个pandas读取excel,然后对IP这列isin(['10.254.221.140']),不就是筛选出这个IP的所有行了么?再count()数一下就知道个数了,也可以单独导出到excel,这不是很简单的么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-13 09:29:27 | 显示全部楼层
疾风怪盗 发表于 2020-11-12 21:52
这样的需求?你用个pandas读取excel,然后对IP这列isin(['10.254.221.140']),不就是筛选出这个IP的所有行 ...

我是白中白我老老实实去看小甲鱼了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-13 09:30:32 | 显示全部楼层
本帖最后由 mb0221 于 2020-11-13 10:00 编辑
逃兵 发表于 2020-11-12 17:44
下班了,明天再说


大佬太厉害了,再来看看我新的帖子呗 感谢感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-3 12:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表