(读书笔记)python数据处理-(python读取csv、excel文件)

2023-11-01

python读取csv文件

import csv 
csvfile = open('E:/tests/2022-01/data-text.csv', 'rb') #rb 以只读和二进制的方式打开文件
reader = csv.reader(csvfile) 

for row in reader:
    print (row)

报错 Error: iterator should return strings, not bytes (did you open the file in text mode?)

解决办法:将文件打开类型设置为rt或者r

import csv 
csvfile = open('E:/tests/2022-01/data-text.csv', 'r') 
reader = csv.reader(csvfile) 

for row in reader:
    print (row)

读取数据记录展示为字典形式

import csv 
csvfile = open('E:/tests/2022-01/data-text.csv', 'r') 
reader = csv.DictReader(csvfile) 

for row in reader:
    print (row)

python解析excel文件

处理excel文件的主要库:xlrd(读取)、xlwt(写入)、xlutils(高级操作)

1.查看工作表中的sheet名

import xlrd 
book = xlrd.open_workbook(file_path)
for sheet in book.sheets():
    print (sheet.name)

2.查看工作表指定sheet的内容

import xlrd
book = xlrd.open_workbook(file_path) 
sheet = book.sheet_by_name('sheet1') 
print (sheet)

print(sheet.nrows) #返回sheet表中的记录数

#遍历行数,返回每一行的内容(扩展:返回任意行的数据)
for i in range(sheet.nrows):
    print (sheet.row_values(i))

#遍历行数,返回指定范围的数据(执行结果返回第14-19行数据)
count = 0
for i in range(sheet.nrows):
    if count < 20:
        if i >= 14:
            row = sheet.row_values(i) 
            print (i, row )
    count += 1

其中:

代码 解释
sheet.name 返回sheet名
sheet.nrows 返回sheet中数据总行数
sheet.row_values(i) 返回第i行数据(此时每行数据以列表形式展示)

3.查看sheet中每个元素

#嵌套for循环,将每行元素以单个形式展示
for i in range(sheet.nrows):
    print (sheet.row_values(i))
    for cell in row:
        print (cell)

4.将提取信息以字典形式展示

  • 设置country作为data字段的键
import xlrd 
book = xlrd.open_workbook('E:/tests/2022-01/SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9 ') 
#print (sheet)

count = 0 
data = {}
for i in range(sheet.nrows):
    if count < 10:
        if i >= 14:
            row = sheet.row_values(i)
            country = row[1]
            data[country] = {}  #将国家设为data的键,对应的值设为另一个字典
            count += 1 
print(data)

#本次执行结果展示行数为14-23行数据,i<14时count+=1不执行,此时count=0
  • 设置country键对应值(以字典形式存储)
import xlrd 
book = xlrd.open_workbook('E:/tests/2022-01/SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9 ') 

data = {}
for i in range(14, sheet.nrows):
    row = sheet.row_values(i)
    country = row[1]
    data[country] = {'child_labor': {'total': [],'male': [],'female': []},
                     'child_marriage': {'married_by_15': [],'married_by_18': []}
                     }
print (data['Afghanistan'])


#data[country]具体数据用索引获得
data[country] = {'child_labor': {'total': [row[4], row[5]],'male': [row[6], row[7]],'female': [row[8], row[9]]},
                 'child_marriage': {'married_by_15': [row[10], row[11]],'married_by_18': [row[12], row[13]]}
                 }



#pprint按输出数据的结构展示
import pprint
pprint.pprint(data)
  • 上述代码整理
import xlrd 
book = xlrd.open_workbook('E:/tests/2022-01/SOWC 2014 Stat Tables_Table 9.xlsx')
sheet = book.sheet_by_name('Table 9 ') 

data = {}
for i in range(14, sheet.nrows):
    row = sheet.row_values(i)
    country = row[1]
    data[country] = {'child_labor': {'total': [row[4], row[5]],'male': [row[6], row[7]],'female': [row[8], row[9]]},
                 'child_marriage': {'married_by_15': [row[10], row[11]],'married_by_18': [row[12], row[13]]}
                 }
    if country == 'Zimbabwe':
        break

import pprint
pprint.pprint(data) 

python 判断excel文件是否存在

Filepath = 'E:/文件路径/'
for i in range(1,8):
    Filename = Filepath + '%d'%(i)+'.xlsx' #excel文件名
    if os.path.exists(Filename) == False:
        writer = pd.ExcelWriter(Filename)
writer.save()
writer.close()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(读书笔记)python数据处理-(python读取csv、excel文件) 的相关文章

随机推荐

  • Docker教程(三) - Docker 网络(上)- 桥接 Bridge

    本文章翻译自Docker的官方教程 有兴趣的同学可以上Docker官网进行play with docker学习 Docker的安装教程请参考这里 未定义 本文翻译自Docker官方教程Doing More With Docker Image
  • 【Unity项目实战】手把手教学:飞翔的小鸟(5)背景滚动

    承接上一篇 Unity项目实战 手把手教学 飞翔的小鸟 4 文本添加 我们已经使得主角小鸟接触到地面后跳转到Game Over状态 接下来我们将继续往下 讲解得分机制 一 重新进入游戏 根据上篇最后的描述 我们小鸟掉到草地就会立马被判断为游
  • 项目中Swagger2、lombok(小辣椒)、以及短信API的调用 简单介绍

    一 使用Swagger2实时生成接口文档 分布式系统使用 Swagger 是一个规范和完整的框架 用于生成 描述 调用和可视化 RESTful 风格的 Web 服务 总体目标是使客户端和文件系统作为服务器以同样的速度来更新 文件的方法 参数
  • 2021-05-27

    k8s 根据CPU利用率实现pod的弹性伸缩 一 概念 1 弹性伸缩的作用 让集群的配置可以根据计算需求 自动增加或者自动减少 在服务器访问量突然增多 算力吃紧的情况下增加节点配置数量 直到访问量下降 计算后减少节点数 保证业务平稳健康运行
  • 使用BP神经网络预测锂电池健康状态(附Matlab源码)

    使用BP神经网络预测锂电池健康状态 附Matlab源码 随着电动汽车的普及 电池技术得到了广泛的关注 其中 锂电池因其能量密度高 环保等优点被广泛应用于电动汽车和储能系统中 然而 锂电池的寿命问题一直是制约其应用和发展的重要因素之一 针对这
  • jQuery+Ajax+js请求json格式数据并渲染到html页面

    1 先给json格式的数据 id 1 name stan id 2 name jack id 3 name lucy id 4 name mary id 5 name jerry id 6 name tom 2 通过访问html页面 获取并
  • 虚幻4学习笔记(3)地形工具和植被

    地形工具和植被 地貌编辑器 生成斜坡 雕刻工具 编辑样条曲线 光照进行构建解决方法 导入灰度图 植被工具使用 植被碰撞 B站UP谌嘉诚课程 https www bilibili com video BV164411Y732 地貌编辑器 生成
  • 分布式一致性算法的重要原理:鸽巢原理

    在分布式BASE理论 数据一致性模型有哪些 中 我们谈到了BASE理论的最终一致性 以及简单介绍了数据一致性模型 但我们都是站在一个使用者的角度 在发出数据更新的请求给分布式系统之后 观察返回的数据是否更新 为了更好使用 理解分布式系统 不
  • C#入门学习-----制作AVI播放器

    本实例主要用到了Microsoft Animation Control Version 6 0 组件 该组件可以一帧一帧地播放AVI文件 用到该组件 必须将Microsoft Animation Control Version 6 0组件添
  • 如何在宝塔面板后的阿里云服务器运行Flask项目并公网可以访问?

    在你的服务器安装宝塔面板 宝塔面板是服务器运维管理系统 使用宝塔前 手工输入命令安装各类软件 操作起来费时费力并且容易出错 而且需要记住很多Linux的命令 非常复杂 使用宝塔后 2分钟装好面板 一键管理服务器 鼠标点几下就能替代以前的复杂
  • JVM类加载过程和编译器优化

    文章目录 1 加载 2 链接 2 1 验证 2 2 准备 2 3 解析 3 初始化 3 1 类初始化练习 3 2 懒汉式单例练习 4 类加载器 4 1 启动类加载器 4 2 扩展类加载器 4 3 双亲委派模式 4 4 线程上下文类加载器 4
  • PCL——VTK读取、保存.ply模型数据

    目录 一 读取 ply文件 1 代码示例 2 结果展示 一 保存 ply文件 1 代码示例 2 结果展示 一 读取 ply文件 ReadPLY 是VTK内置的mesh模型读取函数 该函数仅支持 ply格式的mesh网格数据不支持读取 ply
  • 【STM32】HAL库——ADC

    前期准备 STM32CubeMX STM32RCT6核心板 IDE Keil MDK ARM STM32CubeMX部分 1 配置时钟 选择STM32F103RCTx系列芯片 配置时钟的同时会自动配置IO口引脚 将HCLK设置为最大频率72
  • Altera FPGA PCIE 例程仿真

    由于刚开始学PCIE接口 所以按照官方给的例程进行仿真操作 下面主要介绍下仿真的具体步骤 该例子是采用Cyclone V器件进行仿真 PCIE为gen1X4 的 Quartus II 版本号为15 0 Modelsim为ModelsimSE
  • 小米商城网页制作大全-完结篇

    时隔多日 小米商城网页基本完成 跳转的第二页面没有做 在这过程中遇到了很多小而细的问题 例如浏览器兼容性 字符图标不显示 动画效果不起作用等 抽时间整理一下 再继续完善 效果图如下 实际右侧固定栏只有个人中心 购物车 联系客服 回到顶部四项
  • 【websocket定义和使用】

    文章目录 前言 一 websocket定义 2 websocket使用 总结 前言 websocket就是服务端和客户端建立长连接的一种方式 多在直播 弹幕 聊天业务中使用 具体的自己百度吧 一 websocket定义 代码如下 示例 fu
  • docker 服务编排

    一 docker 服务编排 微服务的应用系统中一般包含若干个微服务 每个微服务一般都会部署多个实例 如果每个微服务都要手动启停 维护的工作量会很大 要从dockerfile build image 或者去 dockerhub 拉取image
  • Flutter 指针事件原理&点击穿透

    隔离的这14天 慢慢的研究了Flutter的指针事件 在这个过程中 又重新梳理了一下Element和Render Tree的形成过程 这篇文章 主要对指针事件在Fluter中如何下发到各个组件的过程进行梳理 指针是指针 手势是手势 手势是指
  • 软件工程课件

    软件工程 考点概述 软件工程概述 能力成度模型 能力成熟度模型集成 软件过程模型 逆向工程 软件需求 需求获取 数据流图 需求定义 考点概述 重点章节 软件工程概述 之前老版教程的 之前考过 能力成度模型 记忆 能力等级 和 特点 能力成熟
  • (读书笔记)python数据处理-(python读取csv、excel文件)

    文章目录 python读取csv文件 python解析excel文件 1 查看工作表中的sheet名 2 查看工作表指定sheet的内容 3 查看sheet中每个元素 4 将提取信息以字典形式展示 python 判断excel文件是否存在