Python学习笔记:导入txt、xlsx文件并做简单函数处理

1.txt文件

        1.1路径

file_path = "E:\Python Project\temp.txt" 
with open(file_path) as f:content1 = f.read()

导入文件时,如果直接放文件绝对路径上去会报错,这是因为\P是转义字符

所以在绝对路径前面加r可以避免将引号内的内容识别成转义字符(在引号前加上f表示这是一个带有特殊格式的字符串,其中可以包含花括号{}及其中的表达式,其中{}内填充的就是表达式的值)

file_path = r"E:\Python Project\temp.txt" 
with open(file_path) as f:content1 = f.read()

或者可以直接使用相对路径

file_path = "temp.txt" 
with open(file_path) as f:content1 = f.read()

相对路径默认识别当前文件夹

        1.2文件读取

python读取文件可以采用

with open(file_path) as f:f.read()

 也可以写作,效果一样,当然open(file,'r')可以加上文件的读取属性

file_path = r"E:\Python Project\temp.txt"
f = open(file_path)

文件内容读取可以通过read、readline、readlines分别读取整个文件、一行、所有行并放在list中,之前读取过的内容后续不会再读出。

 2.xlsx文件

        2.1文件读取

可以使用panda库的excel_read()

import pandas
f = pandas.read_excel(r"E:\Python Project\1.xlsx")
print(f)

也可以直接使用xlrd库的open_workbook(),但是最新版本xlrd库删除了对xlsx的支持;

import xlrd
f = xlrd.open_workbook_xls(r"E:\Python Project\1.xlsx")

也可以使用openpyxl的load_workbook()

import openpyxl as xl
f = xl.load_workbook('1.xlsx')

3.练习:对文件数据进行简单的函数处理

xlsx文件中第一列和第二列数据的Pearson系数计算

import openpyxl
import pandas
import mathf = pandas.read_excel(r"E:\Python Project\1.xlsx")
data1 = f.values
print(type(data1))
sum_ans0 = 0
sum_ans1 = 0
for i in data1:sum_ans0 += i[0]sum_ans1 += i[1]
ave_ans0 = sum_ans0 / len(data1)
ave_ans1 = sum_ans1 / len(data1)
sum_final0 = 0
sum_final1 = 0
sum_final2 = 0
for temp_i in data1:sum_final0 += (temp_i[0] - ave_ans0) * (temp_i[1] - ave_ans1)sum_final1 += math.pow((temp_i[0] - ave_ans0), 2)sum_final2 += math.pow((temp_i[1] - ave_ans1), 2)
pearson = sum_final0/(math.sqrt(sum_final1) * math.sqrt(sum_final2))
print(f"Pearson={pearson}")

得到f后通过f.value得到数据的list,后续对list里面的数据进行遍历求解即可

通过openpyxl中sheet.cell也可以实现遍历

import openpyxl as xl
f = xl.load_workbook('1.xlsx')
sheet = f['Sheet1']
cell = sheet.cell(1, 1)
print(cell.value)
list_ans = []
for row in range(1, sheet.max_row + 1):list_ans.append([sheet.cell(row, 1).value, sheet.cell(row, 2).value])

        3.1 二维list的求和优化

上面这个练习涉及到了二维list需要对每个list的第一个数字和第二个数字分别对应求和

         3.1.1 for遍历

最简单的方式是直接for遍历list

import openpyxl
import pandas
import mathf = pandas.read_excel(r"E:\Python Project\1.xlsx")
data1 = f.values
print(type(data1))
sum_ans0 = 0
sum_ans1 = 0
for i in data1:sum_ans0 += i[0]sum_ans1 += i[1]

        3.1.2sum

 对多维度的list直接应用sum可以分别对应求和

import openpyxl
import pandas
import mathf = pandas.read_excel(r"E:\Python Project\1.xlsx")
data1 = f.values
print(type(data1))
sum_ans1 = sum(data1)

        3.2作图Barchart

import openpyxl as xl
from openpyxl.chart import BarChart, Reference
f = xl.load_workbook('1.xlsx')
sheet = f['Sheet1']
cell = sheet.cell(1, 1)
print(cell.value)
list_ans = []
for row in range(1, sheet.max_row + 1):list_ans.append([sheet.cell(row, 1).value, sheet.cell(row, 2).value])
plot_data = Reference(sheet, min_col=1, max_col=2, min_row=1, max_row=sheet.max_row)
chart = BarChart()
chart.add_data(plot_data)
sheet.add_chart(chart, 'c1')
f.save('1.xlsx')

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Can‘t load the model for ‘stabilityai/sd-vae-ft-mse‘

Can’t load the model for ‘stabilityai/sd-vae-ft-mse’. If you were trying to load it from ‘https://huggingface.co/models’, make sure you don’t have a local directory with the same name. Otherwise, make sure ‘stabilityai/sd-vae-ft-mse’ is the correct…

python,迪卡尔象限中画点

import numpy as np import matplotlib.pyplot as plt circleNum 30 # 同时圆刻度值 pointNum 20 # 点的数量 theta np.linspace(0.0, 2*np.pi, pointNum, endpointFalse) s circleNum * np.random.rand(pointNum) # plt.polar(theta, s, linestyleNone, marker*) # 无连接…

Python 学习之路 03 之循环

😀前言 欢迎来到 Python 循环和流程控制的基础教程!无论您是一名新手,还是希望复习 Python 编程的基本知识,这个教程都是一个非常好的资源。在这份教程中,我们将探索 Python 中的不同循环结构和流程控制机制&#xff0…

Zabbix监控平台部署流程

Zabbix WEB、Zabbix Server、Zabbix Database放在一台服务器;(192.168.10.12)Zabbix Agent部署在被监控服务器上 (192.168.10.11)Zabbix Porxy 单独部署在一台服务器上(被监控服务器少于500台可以不部署&am…

HDMI 直通 ILA 调试实验

FPGA教程学习 第十四章 HDMI 直通 ILA 调试实验 文章目录 FPGA教程学习前言实验原理程序设计实验过程实验尝试总结TODO 前言 HDMI 输入直通到 HDMI 输出的显示,完成一个简单的 HDMI 输入输出检测。 实验原理 开发板 HDMI 输出接口芯片使用 ADV7511,HD…

Bean拷贝组件(注解驱动)方案设计与落地

一、背景 数据流转在各层之间的过程,应当是改头换面的,字段属性数量,属性名称(一般不变,但也有重构时出现变化的情况),类型名称(普遍变化例如BO、VO、DTO)。对于转换的业…

VoIP之IP直呼

在VoIP应用场景中,有一种功能叫IP直呼,也称为IP直拨。 就是两个SIP终端或终端和服务器之间,通过呼叫(Invite)对方IP地址实现音视频通话的功能。 抓包如下: 与常见的SIP账号呼叫的区别是from/to字段没有账号&#xff0…

QT支持的平台

简述: Qt是一个商业和开源许可的跨平台应用程序和UI框架。它由Qt公司与Qt项目社区一起在开源治理模式下开发。 使用Qt,您可以编写一次GUI应用程序,然后将它们部署到桌面,移动和嵌入式操作系统中,而无需重写源代码。 Qt…

IP地址SSL证书的作用是什么?

IP地址SSL证书的作用是确保网站连接的安全性和可信度。具体而言,IP地址SSL证书的作用包括以下几个方面: 1. 数据加密:IP地址SSL证书使用SSL协议为网站提供了数据加密功能。通过加密传输,证书可以保护敏感信息(如用户登…

WEB漏洞原理之---【XMLXXE利用检测绕过】

文章目录 1、概述1.1、XML概念1.2、XML与HTML的主要差异1.3、XML代码示例 2、靶场演示2.1、Pikachu靶场--XML数据传输测试玩法-1-读取文件玩法-2-内网探针或攻击内网应用(触发漏洞地址)玩法-3-RCE引入外部实体DTD无回显-读取文件开启phpstudy--apache日志…

Furion api npm web vue混合开发

Furion api npm web vue混合开发 Furion-api项目获取swagger.json文件复制json制作ts包删除非.ts文件上传到npm获取npm包引用 Furion-api项目获取swagger.json文件 使用所有接口合并的配置文件 复制json制作ts包 https://editor.swagger.io 得到 typescript-axios-clien…

2023-09-14 LeetCode每日一题(可以攻击国王的皇后)

2023-09-14每日一题 一、题目编号 1222. 可以攻击国王的皇后二、题目链接 点击跳转到题目位置 三、题目描述 在一个 8x8 的棋盘上,放置着若干「黑皇后」和一个「白国王」。 给定一个由整数坐标组成的数组 queens ,表示黑皇后的位置;以及…