python数据处理之:excel数据

[复制链接]
2642|5
 楼主| keer_zu 发表于 2021-10-29 14:00 | 显示全部楼层 |阅读模式
excel数据的处理是日常最常见的数据处理。
对表格的增加,删除,多个表格的关联融合。
表格在关系数据库中的存储:excel表格到数据库表的导入导出等。


 楼主| keer_zu 发表于 2021-10-29 14:01 | 显示全部楼层
以下是一些实例:

这个方法用到了计数器原理。先打印前10行,看有没有想要的数据,如果没有再打印11-20行,这样一个区间一个区间的排查,直到确定准确的行数。

代码:
  1. import xlrd

  2. book = xlrd.open_workbook('./resource/data.xlsx')

  3. sheet = book.sheet_by_name('Table 9')

  4. count = 0
  5. for i in range(sheet.nrows):
  6.     if count < 10:
  7.         row = sheet.row_values(i)
  8.         print(i, row)
  9.     count += 1
 楼主| keer_zu 发表于 2021-10-29 14:01 | 显示全部楼层
先打印排查了前10行,查看控制台输出没有找到想要的国家数据,继续调整试验:
  1. import xlrd

  2. book = xlrd.open_workbook('./resource/data.xlsx')

  3. sheet = book.sheet_by_name('Table 9')

  4. count = 0
  5. for i in range(10, sheet.nrows):
  6.     if count < 10:
  7.         row = sheet.row_values(i)
  8.         print(i, row)
  9.     count += 1
 楼主| keer_zu 发表于 2021-10-29 14:02 | 显示全部楼层
我们已经知道了前10行没有想要的数据,所以 range 直接改成 range(10, sheet.nrows) 从第10行开始打印,其他代码不变。再次运行程序,得到如下输出:

88907617b8e60adbbd.png
可以看到从第14行开始出现了国家名字,这就是我们要找的数据。
 楼主| keer_zu 发表于 2021-10-29 14:03 | 显示全部楼层
三、组装数据
找到想要的数据在第几行第几列之后,就可以按之前定义的格式写代码提取组装数据啦。

  1. import xlrd
  2. import pprint

  3. book = xlrd.open_workbook('./resource/data.xlsx')

  4. sheet = book.sheet_by_name('Table 9')

  5. # 定义存放数据的字典
  6. data = {}
  7. for i in range(14, sheet.nrows):
  8.     row = sheet.row_values(i)
  9.     # 取出国家名字
  10.     country = row[1]
  11.     # 按照给定的格式组装数据
  12.     data[country] = {
  13.         'child_labor': {
  14.             'total': [row[4], row[5]],
  15.             'male': [row[6], row[7]],
  16.             'female': [row[8], row[9]],
  17.         },
  18.         'child_marriage': {
  19.             'married_by_15': [row[10], row[11]],
  20.             'married_by_18': [row[12], row[13]],
  21.         }
  22.     }
  23.     # 最后一个国家是 Zimbabwe,判断到 Zimbabwe 之后就 break 跳出循环
  24.     if country == 'Zimbabwe':
  25.         break

  26. # 打印数据
  27. pprint.pprint(data)


打印复杂对象时使用 pprint 格式更美观。
 楼主| keer_zu 发表于 2021-10-29 14:03 | 显示全部楼层
四、总结
处理 Excel 的三个库:xlrd,xlwt,xlutils。根据需要决定用哪些库。
解析出 Excel 之后,通过两种方法确定想要数据的位置:用图形化界面打开直接观察和通过程序一步步筛选。如果不知道一个对象都有什么命令,可以打印 dir(obj) 来查看,其中 obj 是想要查看相关命令的对象。
提前想好最终想输出的格式,有格式之后组装数据会比较容易。
打印复杂对象时使用 pprint 格式更美观。

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

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1488

主题

12949

帖子

55

粉丝
快速回复 在线客服 返回列表 返回顶部