![v2-58fb37d95ad1ecd17e11a01cdc7bee66_1440w.jpg?source=172ae18b](http://img-03.proxy.5ce.com/view/image?&type=2&guid=62b94bb0-e22f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-58fb37d95ad1ecd17e11a01cdc7bee66_1440w.jpg?source=172ae18b)
在日常工作中,经常会遇到将“矩阵”式excel表转为“向量”式excel表的问题。
为了形象的描述R*C列表,此处用了“矩阵”这一比喻。什么是“矩阵”式excel表呢?如下图:
![v2-5df0374c1bd16332e0c043a5c193340a_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=62b94bb0-e22f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-5df0374c1bd16332e0c043a5c193340a_b.jpg)
同理,“向量”式列表见下图:
![v2-b7cb43296e934750d531248506741d6a_b.png](http://img-02.proxy.5ce.com/view/image?&type=2&guid=62b94bb0-e22f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-b7cb43296e934750d531248506741d6a_b.png)
这种转置用图来表示是这样的:
![v2-2df569b0be946eccad5c7b7ffb9dc940_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=62b94bb0-e22f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-2df569b0be946eccad5c7b7ffb9dc940_b.jpg)
就是把每一行都转置成一列,最后汇成一个68*1的列表。
这看起来容易,做起来难。因为按照excel常规操作,每一行转成一列的操作是容易的(可以通过鼠标也可以通过函数完成)。但是当你有几千几万行列表的时候,这种方法是行不通的。
那么在不写excel宏编程的前提下。优雅的Python便是我们的最佳首选!
以下是实际工作场景中我们要做的事:
将sheet1(17*4)和sheet2(17*4)中的列表转置成为sheet3(68*2)的列表
![v2-5dd73f08b31ca7eeb60d3144396d9380_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=62b94bb0-e22f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-5dd73f08b31ca7eeb60d3144396d9380_b.jpg)
话不多说,上代码:
# 载入所需python库
这样,两个17*4的列表就乖乖变成了我们想要的68*2的列表。
有的小伙伴一定想问,这么做的意义在哪呢?
意义就在于当你需要做某些JS生成动态柱形图( @jannchie见齐 )或者做某些多元统计分析时,自然会用到这一不起眼但又十分重要的数据处理步骤。
当然不排除有比我做的更方便的数据处理方式,欢迎指正~
欢迎关注~一个医学生(预防医学哈哈~)的数据成长之旅。。。