版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CSV文件处理教学目标1.了解什么是CSV文件
2.导入csv模块并了解其基本功能
3.掌握使用csv.reader读取CSV文件
4.掌握使用csv.writer写入CSV文件CSV(Comma-SeparatedValues,逗号分隔值)是常用纯文本表格数据格式,用于存储数据库导出、电子表格等结构化数据:每行对应一条记录,列以逗号分隔(首行常为标题行),兼具简单性、跨平台兼容性与轻量特性,是数据交换的标准格式。核心概念:含分隔符(默认逗号,可自定义)、引用符(双引号,避免含逗号字段解析错误)、转义字符、编码(encoding,如UTF-8以支持多语言)。与JSON/XML相比,CSV更轻量,但不支持嵌套结构。1、什么是CSV文件及其重要性importos#导入os模块用于文件操作ifos.path.exists('data.csv'):#检查文件是否存在,避免错误withopen('data.csv','r',encoding='utf-8')asfile:#使用with打开文件,确保自动关闭;指定编码防止乱码content=file.read()#读取整个文件作为字符串print(content)#输出内容,展示CSV结构:行以换行分隔,列以逗号分隔核心概念:Python的标准库包含csv模块,无需pip安装,直接导入即可使用。它提供读取和写入CSV的专用工具,比手动字符串操作更可靠和高效。2.导入csv模块并了解其基本功能importcsv#导入csv模块,开始使用其功能print(csv.version)#输出'1.0'或类似,确认标准库版本dialect=csv.get_dialect('excel')#获取Excel兼容dialectprint(f"Delimiter:{dialect.delimiter}")#输出默认分隔符','print(f"Quotechar:{dialect.quotechar}")#输出默认引用符'"'withopen('data.csv','r',newline='',encoding='utf-8')ascsvfile:#newline=''防止多余空行;encoding处理国际字符reader=csv.reader(csvfile,dialect='excel')#创建reader对象,使用指定dialectforrowinreader:#迭代每行,返回列表print(row)#示例输出:['Name','Age','City']核心概念:处理标题行(使用next(reader)跳过或存储);错误处理(如csv.Error异常);内存效率(逐行读取)。在实际中,常结合循环过滤数据,例如只读取年龄大于18的记录。3.使用csv.reader读取CSV文件importcsv#导入模块withopen('students.csv','r',newline='',encoding='utf-8')ascsvfile:#安全打开文件reader=csv.reader(csvfile,delimiter=',',quotechar='"',skipinitialspace=True)#创建reader,忽略字段前空格header=next(reader,None)#读取标题行,如果无则Noneifheader:print("Header:",header)#输出['Name','Age','Grade']forrowinreader:#遍历数据行iflen(row)==3:#确保行完整name,age,grade=row#解包到变量print(f"{name}is{age}yearsoldwithgrade{grade}")#格式化输出,age可转换为int(int(age))try:exceptcsv.Errorase:#捕获解析错误print(f"Error:{e}")#如分隔符不匹配csv.writer用于将数据写入CSV,支持列表或元组输入,自动添加分隔符和引用。写入模式包括'w'(覆盖)和'a'(追加)。核心概念:writerow()写单行,writerows()写多行;quoting参数控制引用策略(如csv.QUOTE_ALL全部引用);确保数据类型一致,避免写入None导致空字段。4.使用csv.writer写入CSV文件importcsv#导入模块header=['Product','Price','Quantity']#标题列表rows=[['Apple',1.5,10],['Banana',0.75,20]]#数据行列表withopen('inventory.csv','w',newline='',encoding='utf-8')ascsvfile:#'w'模式创建或覆盖文件writer=csv.writer(csvfile,delimiter=',',quoting=csv.QUOTE_MINIMAL)#创建writer,只引用必要字段writer.writerow(header)#写入标题writer.writerows(rows)#批量写入数据行异常处理捕获如ValueError无效行,使用try。在Python中,集成pandas高效读写。处理确保鲁棒,集成扩展功能如过滤。核心概念:异常防止崩溃,集成如pandas简化复杂任务。5.CSV异常处理与集成importcsv#导入csvtry:#尝试读取withopen('bad.csv','r')asfile:#打开reader=csv.reader(file)#readerforrowinreader:print(row)#处理exceptcsv.Errorase:#捕获CSV错误print(f"Error:{e}")#输出importpandasaspd#集成pandasdf=pd.read_csv('data.csv')#读取为DataFrameprint(df.head())#输出前5行pandasread_csv读取CSV为DataFrame,支持参数如sep自定义分隔。在Python中,结合csv预处理。用于数据分析。核心概念:pandas增强csv,添加统计功能。6.CSV与pandas结合importpandasaspd#导入pandasdf=pd.read_csv('large.csv',sep=';',usecols=['col1','col2'])#读取,指定分隔和列df=df[df['col1']>10]#过滤行print(df.describe())#输出统计清洗处理缺失、重复,使用pandasdropna或drop_duplicates。在Python中,fillna填充。用于准备分析数据。核心概念:清洗提升数据质量。7.CSV数据清洗importpandasaspd#导入df=pd.read_csv('dirty.csv')#读取df=df.dropna(subset=['key_col'])#删除缺失行df=df.drop_duplicates()#去除重复df['price']=df['price'].fillna(0)#填充0df.to_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件开发人员年度述职报告
- 自己总结高中知识点总结
- 滩涂施工平台施工方案
- 保险AI应用场景与监管边界界定
- 人工智能优化金融普惠产品设计
- 2026年公务员政治理论知识培训考试题库及答案
- 2026年福建省福州市长乐区金峰镇后团村社区工作人员考试模拟试题及答案
- 2026年电焊工(初级)理论知识模拟考试题库及答案(共50题)
- 2026年Q2起重机司机考试题库附答案
- 2025基本公共卫生服务项目考试题库及参考答案
- 企业社交活动与员工文娱活动管理制度
- 荆州市国土空间总体规划(2021-2035年)
- 最强非标自动化计算表格.V23SP1(二里半教育2023.07)
- 【人教版】六年级数学上册全册课件
- 重症护理超声理论测试题(含答案)
- 《淀粉与变性淀粉》课件
- 风湿免疫疾病的新型治疗药物与进展
- 锂硫电池市场调研报告
- 质量管理体系手册
- 浙江宁波市慈溪市煤气有限公司招聘面谈成绩模拟预测(共500题)笔试参考题库+答案详解
- T-CSAE 173-2021 基于道路载荷谱的汽车用户使用与试验场 试验相关性分析评价规程
评论
0/150
提交评论