在日常工作中,经常会遇到将“矩阵”式excel表转为“向量”式excel表的问题。

为了形象的描述R*C列表,此处用了“矩阵”这一比喻。什么是“矩阵”式excel表呢?如下图:17*4列表

同理,“向量”式列表见下图:68*1列表

这种转置用图来表示是这样的:

就是把每一行都转置成一列,最后汇成一个68*1的列表。

这看起来容易,做起来难。因为按照excel常规操作,每一行转成一列的操作是容易的(可以通过鼠标也可以通过函数完成)。但是当你有几千几万行列表的时候,这种方法是行不通的。

那么在不写excel宏编程的前提下。优雅的Python便是我们的最佳首选!

以下是实际工作场景中我们要做的事:

将sheet1(17*4)和sheet2(17*4)中的列表转置成为sheet3(68*2)的列表

话不多说,上代码:

# 载入所需python库

import numpy as np

import pandas as pd

from openpyxl import load_workbook

# 处理数据

# 读取数据

data1 = pd.read_excel(r'C:\Users\Administrator\Desktop\数据处理.xlsx',sheetname = 0)

data2 = pd.read_excel(r'C:\Users\Administrator\Desktop\数据处理.xlsx',sheetname = 1)

# DataFrame转换为array

data1_np = np.array(data1)

data2_np = np.array(data2)

# 分别由17*4的列表(矩阵)转为68*1的列表(向量)

data1_np_T = data1_np.reshape(68,1)

data2_np_T = data2_np.reshape(68,1)

# array转换为DataFrame

data1_np_T_df = pd.DataFrame(data1_np_T)

data2_np_T_df = pd.DataFrame(data2_np_T)

# 将2个DataFrame(68*1)左右合并(68*2)

data_np_T_df = pd.concat([data1_np_T_df,data2_np_T_df],axis = 1)

# 储存数据

# 载入需要储存的excel表

wb = load_workbook(r'C:\Users\Administrator\Desktop\数据处理.xlsx')

# 在excel表中创建新的sheet

wb.create_sheet(title = 'sheet3',index = 2)

# 指定新的sheet进行后续存储操作

ws = wb.worksheets[2]

# 逐行将DataFrame中的数据写入新的sheet

[h,l] = data_np_T_df.shape

for i in range(h):

row = []

for j in range(l):

row.append(int(data_np_T_df.iloc[i,j]))

ws.append(row)

# 存储数据完毕后,再将excel表进行保存

wb.save(r'C:\Users\Administrator\Desktop\数据处理.xlsx')

这样,两个17*4的列表就乖乖变成了我们想要的68*2的列表。

有的小伙伴一定想问,这么做的意义在哪呢?

意义就在于当你需要做某些JS生成动态柱形图( @jannchie见齐 )或者做某些多元统计分析时,自然会用到这一不起眼但又十分重要的数据处理步骤。

当然不排除有比我做的更方便的数据处理方式,欢迎指正~

欢迎关注~一个医学生(预防医学哈哈~)的数据成长之旅。。。

python读取excel数据为矩阵_用Python实现excel中“矩阵”式列表转“向量”式列表...相关推荐

  1. python读取csv数据画直方图_用python绘制直方图

    其实,学习数据分析,excel可以完成绝大多数的工作,只是课程中@tiger是用python做的,而且最近自己也在学习编程,所以就挑战一下新东西,学学用python做作业,感谢@余欣 的教程,让我一个 ...

  2. python 两个数据框合并计算_一文掌握Excel、SQL、Python【数据合并】大法!

    文章最后有录制的讲解视频,如果看文章不舒服的话,可以直接滑到文末看视频,希望你能喜欢~ 在工作中,会经常遇到将多张表合并为一张表的需求:在面试的时候,有时也会被面试官问到左连接.右连接.内连接的区别. ...

  3. python读取文件路径中有中文_转 python 读取中文文件名/中文路径

    原博文 2015-03-13 22:22 − python直接读取中文路径的文件时失败,可做如下处理: inpath = 'D:/work/yuanxx/在线导航/驾车导航/walk_log/2013 ...

  4. python读取xls数据_python_从.mat与.xls类型文件中读取数据

    从.xls类型文件中读取数据 在写机器学习算法的时候从UCI下载了一些数据,但是格式不是csv,而是.txt/.data,可以先用excel打开数据,在excel中将数据进行分列后导入python进行 ...

  5. python读取千万级数据库数据类型_解决python读取几千万行的大表内存问题

    Python导数据的时候,需要在一个大表上读取很大的结果集. 如果用传统的方法,Python的内存会爆掉,传统的读取方式默认在内存里缓存下所有行然后再处理,内存容易溢出 解决的方法: 1)使用SSCu ...

  6. 用python做一个数据查询软件_使用Python实现NBA球员数据查询小程序功能

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于早起Python ,作者投稿君 一.前言 有时将代码转成带有界面的程序,会极大地方便 ...

  7. python分析股票数据的项目_用Python分析股市指数

    專 欄 ❈本文作者:王勇,目前感兴趣项目商业分析.Python.机器学习.Kaggle.17年项目管理,通信业干了11年项目经理管合同交付,制造业干了6年项目管理:PMO,变革,生产转移,清算和资产处 ...

  8. python读取dat文件写入表格_在python中从.dat文件读取和执行计算

    我需要用python读取一个.dat文件,它总共有12列,数百万行.我需要把第2.3和4栏和第1栏分开计算.所以在加载.dat文件之前,是否需要删除所有其他不需要的列?如果没有,如何有选择地声明列并要 ...

  9. python读取csv前100条_使用python中的csv reader只读取前N行csv文件

    我将一些csv文件的第二列中包含的文本添加到一个列表中,以便稍后对列表中的每个项目执行情绪分析.我的代码目前完全适用于大型csv文件,但是我对列表中的项目执行的情感分析花费了太长时间,这就是为什么我只 ...

  10. python读取图片文字为表格_利用python将图片转换成excel文档格式

    前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实现步骤 读取图像,获取图像每个像素点的RGB值: 根据 ...

最新文章

  1. CF949C Data Center Maintenance(建图+强联通分量)
  2. 两台电脑可以用同一IP上网吗?
  3. 腾讯V265编码器:给用户以完备的265体验
  4. dotNet Core 3.1 使用 Aspose (部署 Docker)
  5. 2021 年 6 月程序员工资统计,反作弊算法工程师太可怕了。。
  6. 移动端AI应用太抢手,高通这次要送开发者20万+的SUV
  7. mysql union (all) 后order by的排序失效问题解决
  8. python新手图解_Python完全新手教程
  9. 【Python 10】汇率兑换3.0(while循环)
  10. 前端工程师提高工作效率的几个小技巧
  11. java 锁优化_Java中锁优化
  12. android usb触摸驱动,Linux/Android——usb触摸屏驱动 - usbtouchscreen
  13. python abs的功能_python abs是什么意思?abs函数有什么用处?
  14. 跨域 CORS policy
  15. 博客备份系统之一:PDF,Word,TXT文件操作类
  16. 西南科技大学计算机综合大纲,西南科技大学(专业学位)计算机技术研究生考试科目和考研参考书目...
  17. Win10 升级安装全攻略
  18. 2018河南省第十一届ACM省赛之旅。。。
  19. 基于asp.net006电话计费管理系统
  20. 长期表现决定了最终结果--leo看赢在中国第三季(8)大结局

热门文章

  1. 《人工智能简史》读后感
  2. SpringBoot java串口操作(rxtx)
  3. javascript 定义对象、方法和属性的使用方法(prototype)
  4. ic 卡获取帐号apdu指令_APDU指令格式解析
  5. 微信小程序布局技巧(二)
  6. SuperSocket服务器架设(一):认识SuperSocket
  7. origin 去掉白边
  8. 【进阶版递归】获取指定目录下的所有后缀为.java的文件
  9. 五笔字型初学者常见问题答疑
  10. oracle临时表空间占用率过高,ORACLE 临时表空间使用率过高的原因及解决方案