xlsx的python处理

方法

刚开始使用xlrd模块去做
安装

pip install xlrd

查阅资料准备采用pandas库,其封装好了xlrd库

读取xlsx

pandas读取xlsx

 data = pd.read_excel(path, sheet_name=0, header=[0])data.head()

遇到一个错误:

ValueError: Your version of xlrd is 2.0.1. In xlrd >= 2.0, only the xls format is supported. Install

参考https://blog.csdn.net/qq_52684907/article/details/118995579
安装库openpyxl

pip install openpyxl

得到的数据DataFrame是一种表格的形式,可以转化为numpy.array

data = data.values

直接csv模块读取csv

使用 with

import pandas as pd
import csvwith open(path_csv,"r") as csvfile:reader=csv.reader(csvfile)for line in reader:print(line)

读取文件名是xlsx的文件列表

dir ='D:\\files_save\\code\\ANT_process\\data_use';
filelist = []
for i in os.listdir(dir):                                          #遍历整个文件夹path = os.path.join(dir, i)if os.path.isfile(path):                                       #判断是否为一个文件,排除文件夹if os.path.splitext(path)[1]==".xlsx":                      filelist.append(i)
Tsub_num=len(filelist)for sub_num in range(Tsub_num):sub_name = filelist[sub_num];path = os.path.join(dir, sub_name)

panda 写文件

先设置成字典的格式,再放入表格中,行列不符合要求的话直接转置就可。
orient=‘index’ 参数的设置是将空格补充成none,否则会报错

  data={'a':a,'b':b};df = pd.DataFrame.from_dict(data, orient='index')df=df.Tprint(df)df.to_excel(path_x)

通过url下载文件

不考虑中断重新开始的问题
环境是python3.9
根据查到的方案
各种方案
可以使用的库

  1. request
  2. urllib3
  3. wget
    urllib3 在使用 的时候
http = urllib3.PoolManager()
f=open(dataset_file, 'wb');

一直连接不上一直失败找不到原因
打算使用wget ,可用,有个问题是 我需要down的文件名不在url中可见

wget.filename_from_url(uri)

无法获得原本的文件名
查阅得到的解析方法

from urllib.request import urlopen
url = "https://zztop.us/rec/download/6cUsf-r5pjo3GNfGtgSDAv9xIXbzy9vms0iRKq6YNn0m8UHILNlKiMrMWMecDkmKyv5o675Hp1ZrKPF16"
response = urlopen(url)
filename = response.headers.get_filename()
print(filename)

wget中也有函数

wget.filename_from_headers

需要参数header ,如何获得header, 我的查阅都是使用urllib.request,我的环境无法安装urllib,最后获取url的basename作为文件名暂时凑乎。

violinplot sns

主要是数据格式 ,官方链接
dataset 是表格的形式 x y 和其他的参数是表格的表头
https://seaborn.pydata.org/generated/seaborn.violinplot.html

seaborn.violinplot(*, x=None, y=None, hue=None, data=None, order=None, hue_order=None, bw='scott', cut=2, scale='area', scale_hue=True, gridsize=100, width=0.8, inner='box', split=False, dodge=True, orient=None, linewidth=None, color=None, palette=None, saturation=0.75, ax=None, **kwargs)

遇到错误:

Neither the `x` nor `y` variable appears to be numeric.

解决
pandas.DataFrame.explode() 将列表列转为独立的单元格,能将值转换为实数而不是字符串

foo = foo.explode('Values')
foo['Values'] = foo['Values'].astype('float')
sns.violinplot(data=foo, x='Names', y='Values')

参考链接
添加链接描述

参数中int 和array的统一的问题

在函数中我经常遇到会需要某个参数的shape的情况,但是int的输入是没有shape的,想要统一 ,当参数之有一个值的时候经常忘记把参数变成矩阵
例如:

c=np.array([6])

为了简单的统一这个问题,可以对int类型的输入先处理:

    if isinstance(channel, int):channel = np.array([channel])

这样就算是输入是int 也可以有shape 不会报错

按照循环扩展一个矩阵的维度numpy(几种常见的情况)

首先我们需要明确的就是numpy是不能初始化一个没有空间的空数据的,即使是空数组也要有形状才能被初始化
也就是说c=np.array([])是会报错的,不像matlab可以设置空矩阵然后通过给空矩阵增加维度,把一系列的矩阵按照循环放到一个新的大矩阵中。
这完成类似的功能
我想了几种大概的解决方案:

  1. 已知这一系列的矩阵的大小以及知道循环的次数
    这种直接生成一个已知 大小的大矩阵,再通过切片的方式把小矩阵放进去
n_cycles,A_shape0,A_shape1=2,3,4
B_mat=np.zeros((n_cycles,A_shape0,A_shape1))
for i_cycles in range(n_cycles):  rng= np.random.RandomState(i_cycles )A_mat= rng.randn(A_shape0,A_shape1)B_mat=[i_cycles ,:,:]=A_mat

2.已知这一系列的矩阵的大小以及不知道循环的次数 但是一系列的矩阵大小一样
使用list extend的方式连接这些矩阵 但是在最后要进行reshape处理变成三维的矩阵

B_mat=[]
i_cycles =0
while  (A condition):rng= np.random.RandomState(i_cycles )A_mat= rng.randn(A_shape0,A_shape1)B_mat.extend(A_mat)i_cycles =i_cycles +1
B_mat=np.array(B_mat).reshape(A_mat.shape[0],A_mat.shape[1],i_cycles)
  1. 当已知循环次数,但是矩阵大小不同
n_cycles=5
B_mat=np.empty((n_cycles),dtype=object)
for i_cycles in range(n_cycles):  A_shape0= random.randint(50)A_shape1= random.randint(50)rng= np.random.RandomState(i_cycles )A_mat= rng.randn(A_shape0,A_shape1)B_mat=[i_cycles]=A_mat
  1. 当未知循环次数,但是矩阵大小不同
    有个傻逼思路,就是先写个循环测试一下循环次数 ,然后按照三来弄

xlsx的python处理相关推荐

  1. python导入xlsx文件-python怎么用pd导入xlsx

    python使用pandas和xlsxwriter读写xlsx文件,下面给大家带来相关步骤: 已有xlsx文件如下: 1. 读取前n行所有数据 # coding: utf-8 import panda ...

  2. python导入xlsx文件-Python读取xlsx文件的实现方法

    脚本如下: from openpyxl import load_workbook workbook = load_workbook(u'/tmp/test.xlsx') #找到需要xlsx文件的位置 ...

  3. python xlsx 大文件_Python这样操作能存储100多万行的xlsx文件!Python让你事半功倍!

    (1) 如果excel文件是xls,2003版的,使用xlrd和xlwt库来对xls文件进行操作 (2) 如果excel文件是xlsx,2007以上版的,使用openpyxl库来对xlsx文件进行操作 ...

  4. python读取xlsx文件pandas_Python使用pandas读取xlsx文件,python

    python使用pandas读xlsx文件 读取前n行数据 读取指定数据(指定行指定列) 获取文件行号和列标题 将数据转换为字典形式 import pandas as pd #1.读取前n行所有数据 ...

  5. python xlsx文件与csv文件转换

    使用pandas库,对文件进行读取,转换. 安装pandas库 pip3 install pandas 读取csv文件 #python读取csv文件 #使用pandas库.直接利用read_csv() ...

  6. python合并多个excel为一个_Python合并多个Excel数据

    安装模块 1.找到对应的模块 2.用pip install 安装 pip install xlrd pip install XlsxWriter pip list查看 XlsxWriter示例 1 i ...

  7. 日常办公会用到的python模块-用 Python 自动化办公能做到哪些有趣或有用的事情?...

    所有需要重复做两次的事情,都可以用程序代替我来完成. 场景1: 微信上处理的事情有很多都是重复的,又经常容易被这些琐事打断.于是我在 Python 程序里设定了一些关键词和相应的自动回复: /> ...

  8. python在excel中的应用-Python利用pandas处理Excel数据的应用详解

    最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用p ...

  9. python与excel的应用-Python利用pandas处理Excel数据的应用

    最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用p ...

  10. Python合并多个Excel数据

    安装模块 1.找到对应的模块  http://www.python-excel.org/ 2.用pip install 安装 pip install xlrd pip install XlsxWrit ...

最新文章

  1. 51CTO学院三周年,一起成长与奋斗的日子
  2. zookeeper设置临时节点失效时间_ZooKeeper 相关概念以及使用小结
  3. excel vba 从入门到精通_VBA词汇-基本元素篇
  4. AutoEncoder概念【常用】
  5. 分治算法兵乓球比赛日程(java)
  6. BIO、NIO、AIO的区别
  7. 《TCP/IP详解》读书笔记
  8. 读写序列(pickle)
  9. python subplots_python fig,ax = plt.subplots()
  10. Linux服务器启动流程详解
  11. [leetcode] 65. 有效数字
  12. 如何速成java_极*Java速成教程 - (2)
  13. 送给我那八年同校的你
  14. 网络骗术 索要佣金型
  15. 中学计算机课外小组活动计划,小学数学课外活动计划
  16. 逻辑备份和物理备份表级恢复
  17. 【python】输入一个值,输出以这个值为公比,1为首项的等比数列前10项
  18. 关于数据库的操作语句
  19. 怎么做到new String(abc) == new String(abc)双等号为true呢?不是使用equals哦
  20. 抽卡计算机在线,《闪耀暖暖》抽卡概率计算器

热门文章

  1. html如何加黑色蒙板,Photoshop中怎么添加黑色蒙版?
  2. 编写Java程序,根据提供的 IP 地址,获取主机名称和域名
  3. 笔记本电脑双显卡怎么切换独立显卡的方法
  4. 微信 存储目录 计算机,电脑微信文件夹保存位置
  5. 工业镜头视场、倍率、焦距之间的关系
  6. 虚拟机安装火狐浏览器
  7. ANDROID ROOT FIDDLER HTTPS 抓包
  8. Idea在启动Debug功能时报错:Unable to open debugger port (127.0.0.1:63985):
  9. 快速排序(过程图解)
  10. python 完全平方数