python数据处理程序代码,如何用python处理数据

news2024/11/16 5:28:41

大家好,给大家分享一下python数据处理程序代码,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!

 

要求:分别以james,julie,mikey,sarah四个学生的名字建立文本文件,分别存储各自的成绩,时间格式都精确为分秒,时间越短成绩越好,分别输出每个学生的无重复的前三个最好成绩,且分秒的分隔符要统一为“.”

数据准备:分别建立四个文本文件

james.txt    2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22

julie.txt       2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21

mikey.txt     2:22,3.01,3:01,3.02,3:02,3.02,3:22,2.49,2:38

sarah.txt     2:58,2.58,2:39,2-25,2-55,2:54,2.18,2:55,2:55

import os

os.chdir('D:\python') #将工作空间修改为文件所在目录

#定义函数get_filedata从文件中取值

def get_filedata(filename):

try:

with open(filename) as f: #with语句打开和自动关闭文件

data=f.readline()#从文件中逐行读取字符

return(data.strip().split(','))#将字符间的空格清除后,用逗号分隔字符

except IOError as ioerr:

print('File Error'+str(ioerr)) #异常处理打印错误

return(None)

#定义函数modify_time_format将所有文件中的时分表达方式统一为“分.秒”

def modify_time_format(time_string):

if "-" in time_string:

splitter="-"

elif ":" in time_string:

splitter=":"

else:

splitter="."

(mins, secs)=time_string.split(splitter) #用分隔符splitter分隔字符后分别存入mins和secs

return(mins +'.'+secs)

#get_prev_three 返回文件中排名前三的不重复的时间成绩

def get_prev_three(filename):

new_list=[modify_time_format(each_t) for each_t in get_filedata(filename)]

delete_repetition=set(new_list) #采用集合set函数删除新列表中的重复项,并生成新的集合

in_order=sorted(delete_repetition)

return(in_order[0:3])

#分别输出对应文件中排名前三的不重复的时间成绩

print(get_prev_three("james.txt"))

print(get_prev_three("julie.txt"))

print(get_prev_three("mikey.txt"))

print(get_prev_three("sarah.txt"))

输出结果:

['2.01', '2.22', '2.34']

['2.11', '2.23', '2.59']

['2.22', '2.38', '2.49']

['2.18', '2.25', '2.39']

要求2

文件中除了学生的成绩外,新增了学生姓名和出生年月的信息,因此将要成变成:分别根据姓名输出每个学生的无重复的前三个最好成绩和出生年月

数据准备:建立一个文本文件

james2.txt     James Lee,2002-3-14,2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22

在上一节基础上,修改部分代码,将新要求实现如下:

import os

print(os.getcwd())

os.chdir('D:\python\data')

def get_filedata(filename):

try:

with open(filename) as f:

data=f.readline()

data_list=data.strip().split(',')

return({

"name":data_list.pop(0),

"data_of_birth":data_list.pop(0),

"times":str(sorted(set([modify_time_format(s) for s in data_list]))[0:3])

})

#use dictionary to store the name,data_of_birth,and times

except IOError as ioerr:

print('File Error'+ str(ioerr))

return(None)

james=get_filedata('james2.txt')

print(james2["name"] + "'s fastest times are:" + james["times"])

print(james["name"]+"'s birthday is" + james["data_of_birth"])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/839275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win32 EditControl多行文本框自动换行,并在添加新行时自动将光标移到末尾

【文本框属性设置】 设为多行文本框:MultilineTrue 允许按回车键换行:Want ReturnTrue 自动换行:Auto HScrollFalse 在最后一行按回车键,自动向上滚动:Auto VScrollTrue 显示垂直滚动条:Vertical ScrollTru…

Cocos Creator的rigidBody.applyForce变成了滚动

序: 1、原因是因为没有调整摩擦系数physics-material 2、摩擦系数调整你要在你的节点 一个物理材料才会有的,教程没跳过去了所以没有 3、扩展阅读第一话:入行程序员的一波三折 最终效果: git录屏会卡,其实过程很平滑 正…

PostgreSQL和MySQL多维度对比

文章目录 0.前言1. 基础对比2.PostgreSQL和MySQL语法对比3. 特性4. 参考文档 0.前言 在当今的软件开发和数据管理领域,数据库是至关重要的基础设施之一。选择正确的数据库管理系统(DBMS)对于应用程序的性能、可扩展性和数据完整性至关重要。…

无涯教程-Perl - do...while 语句函数

与 for 和 while 循环不同,它在循环的顶部测试循环条件,而 do ... while 循环在以下位置检查其条件:循环的底部。 do ... while 循环与while循环相似,除了保证do ... while循环至少执行一次。 do...while - 语法 do {statement(s); }while(…

PintOS lab1 threads 实验记录

Background 首先完成这个实验我们需要理清线程怎么启动的和切换的 下面这张图可以大体表示线程状态的切换 让我们看看thread init的前世今生吧(: 从start.S汇编调用了一个c函数 pintos_init初始化了一堆东西,当然里面也包括了thread啦 int pintos_in…

计算机网络(5) --- http协议

计算机网络(4) --- 协议定制_哈里沃克的博客-CSDN博客协议定制https://blog.csdn.net/m0_63488627/article/details/132070683?spm1001.2014.3001.5501 目录 1.http协议介绍 1.协议的延申 2.http协议介绍 3.URL 4.urlencode和urldecode 2.HTTP协…

langchain-ChatGLM源码阅读:参数设置

文章目录 上下文关联对话轮数向量匹配 top k控制生成质量的参数参数设置心得 上下文关联 上下文关联相关参数: 知识相关度阈值score_threshold内容条数k是否启用上下文关联chunk_conent上下文最大长度chunk_size 其主要作用是在所在文档中扩展与当前query相似度较高…

HCIP MPLS综合实验

目录 题目 实验步骤 第一步、IP地址规划 第二步、配置接口IP地址 第三步、IGP配置OSPF 第五步、公网配置MPLS 第五步、使用MPLS-VPN 第六步、R2-R4使用BGP建邻并实现VPN建邻 第六步、配置B静态路由 第七步、配置B动态路由 第八步、重发布 第九步、测试 题目 1、R1…

GO语言的垃圾回收机制

内存垃圾的产生 程序在内存上被分为堆区、栈区、全局数据区、代码段、数据区五个部分。对于C等早期编程语言栈上的内存回由编译器负责管理回收,而堆上的内存空间需要编程人员负责申请和释放。在Go中栈上内存仍由编译器负责管理回收,而堆上的内存由编译器…

王道计网 第四章笔记

4.1 生活在网络层的“工人”是路由器,他负责各种异构网络的连接,但是因为他只生活在前三层所以从网络层之上的东西他不能管理,所以网路层之上的数据对于路由器来说必须是相同的、透明的。 常见的网络层协议有IP 和 ICMPTCP IP传输层协议FTP应用层协议一句话区分IP和MAC地址…

Typescript - 索引签名

目录 1,什么是索引签名1,js 中使用对象的属性2,ts 中的索引签名3,扩展索引签名定义的类型 2,与 Record 对比3,遇到的问题1,索引 key 的类型问题,keyof2,索引 key 的类型问…

CADintosh X for mac CAD绘图软件2D CAD 程序 兼容 M1

CADintosh X for Mac是一个功能强大的2D CAD绘图程序,专为Mac用户设计。它由Lemke Software开发,提供了一套丰富的工具和功能,使用户能够轻松创建高质量的技术图纸,平面图和设计。 CADintosh X for Mac具有直观的用户界面&#x…

Python3 处理PDF之PyMuPDF 入门

PyMuPDF 简介 PyMuPDF是一个用于处理PDF文件的Python库,它提供了丰富的功能来操作、分析和转换PDF文档。这个库的设计目标是提供一个简单易用的API,使得开发者能够轻松地在Python程序中实现PDF文件的各种操作。 PyMuPDF的主要特点如下: 跨平台兼容性&a…

【分布式系统】聊聊服务调度

什么是服务治理 对于程序员来说的话,把功能按照一定的设计进行开发上线之后,其实并不够,在未来的时间内,其实还需要做好功能的维护工作,而维护项目的成本远远高于开发出一个软件的成本。 对于功能开发起来期来说&am…

ensp-GVRP服务

ensp-GVRP服务 日期:6-26 📎GVRP实验.zip📎GVRP服务.docx

无涯教程-Perl - 环境配置

在开始编写Perl程序之前,让我们了解如何设置我们的Perl环境。 您的系统更有可能安装了perl。只需尝试在$提示符下给出以下命令- $perl -v 如果您的计算机上安装了perl,那么您将收到以下消息: This is perl 5, version 16, subversion 2 (v5.16.2) b…

谁更适合搭配甜点显卡?i7-13700KF、锐龙7 7800X3D对比:游戏相当 生产力Intel强了50%...

一、前言:如果搭配2000元甜点显卡 i7-13700KF和锐龙7 7800X3D谁更有性价比? 现在AMD最受欢迎的处理器无疑是拥有96MB三级缓存的锐龙7 7800X3D,这是一颗专为游戏而生的处理器。 Intel这边,i7-13700KF以略高于i5-13600K的售价&#…

python:卡尔曼和贝叶斯滤波器

本文分享一个Filerpy的说明文档和代码示例文档,有关于 Python 中的卡尔曼和贝叶斯滤波器。该方法可以应用于气象遥感等领域。 说明文档:https://filterpy.readthedocs.io/en/latest/kalman/KalmanFilter.html 参考代码链接:https://nbviewer.…

conda install 和pip install有什么区别?

本篇为分享贴,截图部分选自知乎,部分选自csdn,文字内容是结合自己实践进行总结。 环境引用的包在哪? 首先,一条命令: python -m site 这条命令可以定位引用的包在哪里 ,当然也可以自己设置默认…

K8s中的Secret

Secret作用:加密数据存在etcd里面,让pod容器以挂载Volume方式进行访问。场景:凭据