已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章文件 Overview 文件读写 Pandas模块读写常见格式文件 数据可视化 2 Python程序设计 7 1文件读写 计算机文件 是存储在某种长期储存设备上的一段数据流 所谓 长期储存设备 一般指磁盘 光盘 磁带等 其特点是所存信息可以长期 多次使用 不会因为断电而消失 计算机文件可分为二种 二进制文件和文本文件图形文件及文字处理程序等计算机程序都属于二进制文件 这些文件含有特殊的格式及计算机代码 文本文件则是可以用文字处理程序阅读的简单文本文件 3 Python程序设计 文件读写步骤 1 打开文件2 处理数据3 关闭文件 Python程序设计 4 显示文件名为7 1 txt的内容 该文件只有一行 textFile open 7 1 txt rt 以文本方式打开t textFile readline print t textFile close binFile open 7 1 txt rb 以二进制方式打开b binFile readline print b binFile close 程序输出 欢迎学习Python语言b xbb xb6 xd3 xad xd1 xa7 xcf xb0Python xd3 xef xd1 xd4 Python程序设计 5 open函数 fileobj open filename mode fileobj是open 返回的文件对象filename是该文件的文件名mode是指明文件类型和操作的字符串mode的第一个字母表明对其的操作 mode的第二个字母是文件类型 t 可省略 代表文本类型文件 b代表二进制类型文件 后面的文件处理操作均以文本方式为例 Python程序设计 6 文件打开模式 Python程序设计 7 文件读写函数 Python程序设计 8 例7 2 文件复制 Python程序设计 9 cj txt文件是学生一门课的成绩 它的内容如下 978093698790849475768983833372486686988989888763878110080376871779866472987939610070858335需要把这个文件的内容复制到 cjback txt 文件中 复制文件不需要考虑行结构 用read函数就可以了 程序 source open cj txt r back open cjback txt w s source read back write s source close back close 例7 3 计算总评分 Python程序设计 10 文件score txt是学生一学期的成绩 每一行代表一个学生的成绩 由笔试 平时和实验三部分构成 总评 笔试 50 平时 25 实验 25 readlines函数 f open score txt r s f readlines print s 运行结果 学号姓名专业笔试平时实验 n 2050921018詹延峰计算数学658576 n 2050921036李小鹏金融学类869585 n 2050921039裴凡法经济学类869565 n 2040912116茅舒瑶社会保障9095100 n 2050912017陈见影化学工程627592 n 2050912064梅钦钦材料科学879580 n 2050109153王影平大气科学868972 n 2050151003韩平医化学工程829960 n Python程序设计 11 文件逐行读取 f open score txt r forlineinf readlines print line 程序输出 学号姓名专业笔试平时实验2050921018詹延峰计算数学6585762050921036李小鹏金融学类8695852050921039裴凡法经济学类869565 Python程序设计 12 计算总评分 f open score txt r head f readline 读表头行newhead head 9 head 9 18 head 18 1 总评成绩 加空格对齐print newhead forlineinf readlines l line split 求总评分s round int l 3 0 5 int l 4 0 25 int l 5 0 25 2 l 4 l 4 加空格对齐l 5 l 5 加空格对齐print join l str s 加空格对齐 Python程序设计 13 总评成绩 Python程序设计 14 重定向 Python程序设计 15 sys stdin标准输入sys stdout标准输出sys stderr标准错误输出importsyss sys stdin readlines 从文件读入变为从键盘输入print s 词频统计 取自pintia网站 请编写程序 对一段英文文本 统计其中所有不同单词的个数 以及词频最大的10 的单词 所谓 单词 是指由不超过80个单词字符组成的连续字符串 但长度超过15的单词将只截取保留前15个单词字符 而合法的 单词字符 为大小写字母 数字和下划线 其它字符均认为是单词分隔符 注意 单词 不区分英文大小写 例如 PAT 和 pat 被认为是同一个单词 输入给出一段非空文本 最后以符号 结尾 输入保证存在至少10个不同的单词 输出按照词频递减的顺序 按照 词频 单词 的格式输出词频最大的前10 的单词 若有并列 则按递增字典序输出 16 DataandComputation 输入处理 s sys stdin read 表示重定向为键盘输入 s s find 表示取输入字符串 以符号 结尾 Python程序设计 17 产生词频字典 Python程序设计 18 forkinset iforiinstrsifi isalnum Falseandi strs strs replace k 其它字符均认为是单词分隔符strs strs rstrip lower split 全部变小写counts dict foriinstrs k i 15 ifknotincounts counts k 1else counts k 1 排序及输出 词频递减的顺序 若有并列 则按递增字典序ans sorted counts items key lambdax x 1 x 0 print len counts foriinrange 0 int 0 1 len counts 词频最大的前10 的单词print str ans i 1 ans i 0 Python程序设计 19 完整程序 importsyss sys stdin read strs s s find 以符号 结尾 forkinset iforiinstrsifi isalnum Falseandi strs strs replace k 其它字符均认为是单词分隔符strs strs rstrip lower split 全部变小写counts dict foriinstrs k i 15 ifknotincounts counts k 1else counts k 1 词频递减的顺序 若有并列 则按递增字典序ans sorted counts items key lambdax x 1 x 0 print len counts foriinrange 0 int 0 1 len counts 词频最大的前10 的单词print str ans i 1 ans i 0 Python程序设计 20 7 2用Pandas模块读写常见格式文件 Python的模块函数分三个层次 一 内置函数不用import语句引入 它里面的函数可直接调用 二 标准模块函数用import语句引入后再调用 但不必安装 如math库 三 第三方模块函数需先安装 再用import语句引入模块后才能调用里面的函数 如Pandas模块 Python程序设计 21 第三方库安装 Python程序设计 22 打开网页 https pypi org 输入模块名 就可查到模块的详细说明 pip命令 Python程序设计 23 c pipinstallpandas安装pandas模块 Pandas模块 Pandas是python的一个数据分析包 Pandas最初被作为金融数据分析工具而开发出来 Pandas为时间序列分析提供了很好的支持 Pandas是基于NumPy的一种工具 Pandas纳入了大量函数和一些标准的数据模型 提供了高效地操作大型数据集所需的工具 提供了大量能使我们快速便捷地处理数据的函数和方法 它是使Python成为强大而高效的数据分析环境的重要因素之一 Python程序设计 24 Plotly模块 Plotly是一个基于JavaScript的动态绘图模块 Plotly的绘图效果与我们在网页上看到的动态交互式绘图结果是一样的 其默认的绘图结果是一个HTML网页文件 通过浏览器就可以查看 Plotly有着自己强大又丰富的绘图库 支持各种类型的绘图方案 Plotly是基于JavaScript的绘图库 所以其绘图结果可以与web应用无缝集成 Plotly最初是一款商业化的绘图软件 自plotly js开源之后 我们可以使用本地的离线模式进行绘图 不依赖于官方的服务器 使得绘图速度更快 而效果与在线绘图一样 这也是目前使用Plotly绘图的主流模式 fromplotly offlineimportplot网址 https plot ly python Python程序设计 25 DataFrame数据类型 DataFrame是Pandas库的一种数据类型 DataFrame是一个行和列都具有标签的表格 它与Excel电子表格并无不同 DataFrame使用非常方便 当你在处理二维表格数据时 都应该使用它们 DataFrame可由元组 列表 Python字典或另一个DataFrame构造出来 Python程序设计 26 用列表产生DataFrame变量data Python程序设计 27 fromplotly offlineimportplotfromplotlyimportfigure factoryasFFimportpandasaspddata pd DataFrame 2050921018 詹延峰 计算数学 65 85 76 2050921036 李小鹏 金融学类 86 95 85 2050921039 裴凡法 经济学类 86 95 65 2040912116 茅舒瑶 社会保障 90 95 100 2050912017 陈见影 化学工程 62 75 92 2050912064 梅钦钦 材料科学 87 95 80 2050109153 王影平 大气科学 86 89 72 2050151003 韩平医 化学工程 82 99 60 columns 学号 姓名 专业 笔试 平时 实验 table FF create table data 用plotly产生输出表格plot table show link False 程序输出 Python程序设计 28 用DataFrame计算总评分 Python程序设计 29 fromplotly offlineimportplotfromplotlyimportfigure factoryasFFimportpandasaspddata pd DataFrame 2050921018 詹延峰 计算数学 65 85 76 2050921036 李小鹏 金融学类 86 95 85 2050921039 裴凡法 经济学类 86 95 65 2040912116 茅舒瑶 社会保障 90 95 100 2050912017 陈见影 化学工程 62 75 92 2050912064 梅钦钦 材料科学 87 95 80 2050109153 王影平 大气科学 86 89 72 2050151003 韩平医 化学工程 82 99 60 columns 学号 姓名 专业 笔试 平时 实验 data 总评成绩 data 笔试 0 5 data 平时 0 25 data 实验 0 25table FF create table data plot table show link False 程序输出 Python程序设计 30 用pandas读写各种类型文件 Python程序设计 31 读取CSV和表格文件 importplotlyaspyfromplotlyimportfigure factoryasFFimportplotly graph objsaspygoimportpandasaspdpyplt py offline plot 离线模式data pd read csv score csv encoding GBK table FF create table data 产生表格pyplt table show link False GB2312 GBK 和 CP936 都是用两个字节表示中文 GB2312 是中国制定的中文编码 GBK 是 GB2312 的扩展 CP936 是在 GB2312 基础上开发的汉字编码 Python程序设计 32 写网页文件 产生网页文件 scoregp htmlimportplotlyaspyfromplotlyimportfigure factoryasFFimportplotly graph objsaspygoimportpandasaspdpyplt py offline plot 离线模式data pd read csv scoregp csv encoding GBK table FF create table data 产生表格pyplt table filename scoregp html show link False Python程序设计 33 读写Excel文件 要装xlrd模块读score xlsx文件写入scoregp xlsx文件importpandasaspddata pd read excel score xlsx data 总评 data 笔试 0 5 data 平时 0 25 data 实验 0 25data to excel scoregp xlsx index 0 Python程序设计 34 JSON文件读写 JSON建构于两种结构 名称 值 对的集合 Acollectionofname valuepairs 不同的语言中 它被理解为对象 object 纪录 record 结构 struct 字典 dictionary 哈希表 hashtable 有键列表 keyedlist 或者关联数组 associativearray Python中对应字典类型 值的有序列表 Anorderedlistofvalues 在大部分语言中 它被理解为数组 array 这些都是常见的数据结构 事实上大部分现代计算机语言都以某种形式支持它们 这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能 Python中对应列表类型 Python程序设计 35 to json和read json 读取Excel文件 score xlsx 用to json函数产生JSON文件data json 最后用read json读JSON文件 data json importpandasaspddata pd read excel score xlsx data to json data json force ascii False jsondata pd read json data json print jsondata Python程序设计 36 7 3数据可视化 plotly模块 fromplotly offlineimportplotimportplotly graph objsasgomydata x 1 2 y 5 6 mylayout fig go Figure data mydata layout mylayout fig go Figure data mydata layout mylayout plot fig Python程序设计 37 折线图 绘制总评分的折线图fromplotly offlineimportplotimportplotly graph objsasgoimportpandasaspddata pd read csv score csv encoding GBK data 总评成绩 data 笔试 0 5 data 平时 0 25 data 实验 0 25xdata data 姓名 tolist x轴数据ydata data 总评成绩 tolist y轴数据fig go Figure data go Scatter x xdata y ydata plot fig Python程序设计 38 输出图形 Python程序设计 39 同时绘制笔试和总评分的折线图 fromplotly offlineimportplotimportplotly graph objsasgoimportpandasaspddata pd read csv score csv encoding GBK data 总评成绩 data 笔试 0 5 data 平时 0 25 data 实验 0 25data 总评成绩 data 笔试 0 5 data 平时 0 25 data 实验 0 25xdata data 姓名 tolist 取姓名这一列 变列表ydata1 data 总评成绩 tolist 取总评成绩这一列 变列表ydata2 data 笔试 tolist 取笔试成绩这一列 变列表trace0 go Scatter x xdata y ydata1 name 总评成绩 总评折线trace1 go Scatter x xdata y ydata2 name 笔试成绩 笔试折线mylayout go Layout title 总评成绩和笔试成绩相关图 图的标题fig go Figure data trace0 trace1 layout mylayout plot fig Python程序设计 40 显示图形 Python程序设计 41 气泡图 fromplotly offlineimportplotimportplotly graph objsasgoimportnumpyasnpN 10 x np random rand N y np random rand N colors np random rand N sz np random rand N 30fig go Figure fig add scatter x x y y mode markers marker size sz color colors opacity 0 6 colorscale Viridis plot fig Python程序设计 42 气泡图参数 mode markers 散点图 气泡图marker size sz 点的大小 color colors 点的颜色 opacity 0 6 点的透明度 colorscale Viridis mode lines 折线图Mode lines markers 折线图 散点图 Python程序设计 43 绘制成绩柱状图 fromplotly offlineimportplotimportplotly graph objsasgoimportpandasaspddata pd read csv score csv encoding GBK xdata data 姓名 tolist 取姓名这一列 变列表ydata1 data 平时 0 25 tolist 取平时成绩这一列 变列表ydata2 data 笔试 0 5 tolist ydata3 data 实验 0 25 tolist trace0 go Bar x xdata y ydata1 name 平时成绩 trace1 go Bar x xdata y ydata2 name 笔试成绩 trace2 go Bar x xdata y ydata3 name 实验成绩 layout go Layout title 层叠柱状图表表示成绩 barmode stack fig go Figure data trace0 trace1 trace2 layout layout plot fig Python程序设计 44 柱状图 Python程序设计 45 显示各部分成绩 Python程序设计 46 圆饼图 fromplotly offlineimportplotimportplotly graph objsasgolabels Oxygen Hydrogen Carbon Dioxide Nitrogen values 4500 2500 1053 500 trace go Pie labels labels values values plot trace Python程序设计 47 FIGURE层次 DATA TRACE x y z color text size colorscaleABC MARKER colorABCsymbolABCLINE colorABCwidth123 LAYOUT titleabcXAXISYAXIS SCENE XAXIS YAXIS ZAXIS GE0 LEGEND ANNOTATIONS Python程序设计 48 表格和折线同屏显示 fromplotly offlineimportplotimportplotly graph objsasgoimportnumpyasnpimportpandasaspddf pd read csv Python程序设计 49 画表格 table trace1 go Table domain dict x 0 0 5 y 0 1 0 左半边columnwidth 30 33 35 33 columnorder 0 1 2 3 4 header dict height 50 values Date Numbertransactions Outputvolume BTC MarketPrice line dict color rgb 50 50 50 align left 5 font dict color rgb 45 45 45 5 size 14 fill dict color d562be cells dict values df k tolist forkin Date Number transactions Output volume BTC Market price line dict color 506784 align left 5 font dict color rgb 40 40 40 5 size 12 format None 2f 2 4f prefix None 2 u u20BF suffix None 4 height 27 Python程序设计 50 画折线 trace1 go Scatter x df Date y df Hash rate xaxis x1 yaxis y1 mode lines line dict width 2 color 9748a1 name hash rate TH s trace2 go Scatter x df Date y df Mining revenue USD xaxis x2 yaxis y2 mode lines line dict width 2 color b04553 name miningrevenue trace3 go Scatter x df Date y df Transaction fees BTC xaxis x3 yaxis y3 mode lines line dict width 2 color af7bbd name transact fee axis dict showline True zeroline False showgrid Tr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-江西-江西家禽饲养员三级(高级工)历年参考题库含答案详解3套试卷
- 纤支镜肺泡灌洗的护理查房
- 腰肌劳损保守治疗
- 2026下半年小学教师资格证考试小学数学专项试卷及解析
- 2026年历史教学培训试卷
- 劳动就业政策研究
- 汽修行业职业发展指南
- 戒烟健康宣教素材
- 2026事业单位工勤技能-江苏-江苏计算机操作员一级(高级技师)历年参考题库含答案详解3套试卷
- 2026 年强降雨引发山洪与塌方防范宣讲
- (一模)南昌市2026届高三年级三月测试英语试卷(含官方答案)
- 冲床操作工岗位责任制度
- 刑事辩护风险告知书范文模板
- 阿里铁军考核制度
- 2026年及未来5年市场数据中国旅游景区景点行业市场发展数据监测及投资战略规划报告
- 2026年幼儿教师戏剧表演面试题含答案
- 挖树合同协议书
- 股骨头缺血坏死病例讨论教案
- 早产儿护理:喂养、呼吸与发育支持
- 带式焙烧机安装施工方案
- 2026中国农业银行河北省分行校园招聘964人考试参考试题及答案解析
评论
0/150
提交评论