python将输出结果写入excel多行多列_Python处理Excel之多列转多行

前几天,因为一些缘故,需要处理一个包含大量数据的Excel表格。要求具体是将如下表格中的”一””二”列变为”开始”列,”三””四”列变为”结束”列。如下表:《python将输出结果写入excel多行多列_Python处理Excel之多列转多行》初始表

《python将输出结果写入excel多行多列_Python处理Excel之多列转多行》修改后的表

当然,数据少的时候我们可以选择直接使用粘贴复制的手法,但如果数据上千上万呢?这个时候就是咱们写的Python小代码上线的时候啦。

思路:《python将输出结果写入excel多行多列_Python处理Excel之多列转多行》按行取出Excel内所有数据。

《python将输出结果写入excel多行多列_Python处理Excel之多列转多行》“一””二”变为一列,”三””四”变为一列。并取到”姓名””性别”两列。

《python将输出结果写入excel多行多列_Python处理Excel之多列转多行》“姓名”列必须从[‘张三’,’小红’]变为[‘张三’,’张三’,’小红’,’小红’]

“性别”列也同样。

《python将输出结果写入excel多行多列_Python处理Excel之多列转多行》创建一个表头列表listh,将以上得到的list00,list11,liststart,listend这四个列表存入一个大列表dataz中,每个列表代表一列。

《python将输出结果写入excel多行多列_Python处理Excel之多列转多行》将dataz与listh存入Excel中。

《python将输出结果写入excel多行多列_Python处理Excel之多列转多行》

全部代码如下:

“””

功能:多列转多行

作者:橙稚

“””

import pandas  as pd

import openpyxl

import numpy as np

def data_write(listh, dataz):

file1 = openpyxl.Workbook()

outws = file1.create_sheet(index=0)  # 创建sheet

outws.append(listh)

for f in range(len(dataz[0])):

outws.append(dataz[:, f].tolist())

file1.save(“text-1.xlsx”)

if __name__ == ‘__main__’:

df = pd.read_excel(‘test.xlsx’,dtype=object,keep_default_na=False)

data2 = df.values.tolist()

list0=[]

list1=[]

liststart=[]

listend=[]

for i in range(0,len(data2)):

for j in range(2,4):

liststart.append(data2[i][j])

for k in range(4,6):

listend.append(data2[i][k])

list0.append(data2[i][0])

list1.append(data2[i][1])

list00=[]

list11=[]

for i in list0:

for j in range(0,2):

list00.append(i)

for i in list1:

for j in range(0,2):

list11.append(i)

dataz = [list00,list11,liststart,listend]

listh=[‘姓名’,’性别’,’开始’,’结束’]

dataz=np.array(dataz)

   data_write(listh,dataz)《python将输出结果写入excel多行多列_Python处理Excel之多列转多行》

需要注意的地方:

①Excel表格中有空白单元格,记得取数据的时候加上keep_default_na=False,不然在存数据的时候空单元格会变成#NAN!

② 在用Python取Excel中int数据的时候,记得要加dtype=object,不然的话取数据的时候自动将int型数据变为float型数据。如3变为3.0。

③每一次运行前一定要确保test-1.xlsx这个Excel表格不存在,存在的话就手动删掉吧。不然可能会报错的。

④根据不同的需求需要更改的地方都用红框圈下来啦。主要集中在二三四步骤内。

《python将输出结果写入excel多行多列_Python处理Excel之多列转多行》

最后:

欢迎关注公众号寻船人,后台回复“列转行”获取代码及小例子。更多简便小工具小方法橙子都会在公众号分享。一起来寻找更简便的方法吧。《python将输出结果写入excel多行多列_Python处理Excel之多列转多行》欢迎来公众号找我来玩呀。

    原文作者:weixin_39824834
    原文地址: https://blog.csdn.net/weixin_39824834/article/details/110981973
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞