Python实例:Excel表格内容行列转置

原文链接:http://www.juzicode.com/python-example-excel-col-row-transpose

今天的例子实现对Excel表格的行列值完成转置。

原始表格为:
 A | B | C 
 1 | 2 | 3 
 * | ( | ) 

 经过转置后变为:
 A | 1 | *
 B | 2 | (
 C | 3 | )

方法1,用xlrd读取excel文件按照行方式存入到一个列表中,用xlwt写入文件时,按照列方式取出:

#juzicode.com/VX公众号:juzicode
import xlrd
import xlwt

wb_r=xlrd.open_workbook('data_r.xls')  
ws_r=wb_r.sheet_by_name('juzicode')
data_list=[] 
for i in range(ws_r.nrows):
    data_list.append(ws_r.row_values(i))
print('data_list:',data_list)

wb_w = xlwt.Workbook()
ws_w=wb_w.add_sheet('juzicode')
for i in range(ws_r.ncols):
    for j in range(ws_r.nrows):
        ws_w.write(i,j,data_list[j][i])
wb_w.save('data_w_xlwt_xlrd.xls')

方法2,用pandas读出文件生成df实例后,使用它的T属性完成转置:

#juzicode.com/VX公众号:juzicode
import pandas as pd

df = pd.DataFrame(pd.read_excel('data_r.xls'))
df_t = df.T
with pd.ExcelWriter('data_w_pandas.xlsx',engine='openpyxl') as writer:
    df_t.to_excel(writer,header=False)

方法3,用pandas读出文件生成df实例后,使用它的transpose()方法完成转置:

#juzicode.com/VX公众号:juzicode
import pandas as pd

df = pd.DataFrame(pd.read_excel('data_r.xls'))
df_t = df.transpose()
with pd.ExcelWriter('data_w_pandas2.xlsx',engine='openpyxl') as writer:
    df_t.to_excel(writer,header=False)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值