Python

转置脚本 v1.1 —— 随即行转置

    本文所阐述的脚本是之前“五行简单转置脚本”的升级版本,以上期的脚本为基本版本号v1.0,在其基础上进行一系列升级。至于你问这有什么用,我只能说我也不知道。因为本来就是为了边学边玩儿

升级需求:

    针对上次的“五行简单转置脚本”,本次所做的主要升级为:脚本能够完成随机行数的转置。

python list 交换位置 list转置 python_用指针将33矩阵转置

    首先,将具体实现的最终思维导图pop出来。

最终实现的思维导图

python list 交换位置 list转置 python_python 转置_02

    在本次的v1.1中因为是要处理随机行的数据,所以五行脚本中用五个列表(list)的方式不再可行。需要使用其他更好的封装处理的方式(单独读取一行,再集合到一起进行转置处理)或者用类似指针的方式来进行逐行、逐个的写入再进行转置。在python中可以使用yiled来进行处理,其会让函数变为一个“生成器”,来进行单行的数据的读取。但在我的实现中会在最后的写入文件(xxx.txt)阶段遇见写入顺序的问题

UI设计

    这次顺便也将UI设计的草稿完成了,当然具体实现效果和设计是两码事。主要是最近比较喜欢“深色模式”,就将整体的UI设计风格搞得比较暗黑系。

UI设计草稿

python list 交换位置 list转置 python_python list 交换位置_03

数据剥离

    数据剥离,一直是直接使用pandas中内置转置方法中最麻烦的一步。虽然在v1.0中直接使用了split切片的方式,就实现了一个数字元素到一位数为一个元素的转换,但在v1.1中需要将一组数据中的每一位数放入到dataframe中。这时就需要前面所描述的指针方式来实现独立位的写入,就如同下面的切片操作,但是要对应的放入excel表格一样的dataframe中。

v1.0中的split切片

    本脚本中需要对整段的数据进行切片,将长段的整个数据分割为一个个独立的一位数据元素存储到相应的数据列表。才能方便进行独立的位转置写入到相应的文件当中。

python list 交换位置 list转置 python_python 转置_04

关键代码实现

python list 交换位置 list转置 python_python list 交换位置_05

   其中独立位的对应(即a[0]读出的是0这个数,而不是000000...1这一长串数),使用变量的位置一一独立对应的特点来进行。

在完成数据处理之后,pandas自带的to_csv将处理过后的dataframe存储到对应的txt文件中

问题&升级

问题:

目前输出的文件格式还有问题,如下图

  1. 列号没有去除
  2. 每组数的方括号([])和单引号(' ')没有去除

python list 交换位置 list转置 python_python list转置_06