0
点赞
收藏
分享

微信扫一扫

python之pandas excel横列转竖列

Brose 2022-04-06 阅读 87

 大神们看看代码能否优化简洁些,望诸位赐教!

import pandas as pd
data=pd.read_excel('0.xlsx','sheet1')
lieshu=data.shape[1]#取dataframe列的数量
l1=data.iloc[:,[0,1]]#选择第1,2列数值
lie=data.columns.values[1]#按位置提取列标题
xueke=[]#定义xueke列表增加一列学科
for i in l1['姓名']:
    xueke.append(lie)#用成绩列列名填充1列数据
l1=l1.copy()
l1.rename(columns={lie:'成绩'},inplace=True)#改成绩列名统一为‘成绩’,便于合并时同列
l1['学科']=xueke#增加一列并用xueke列表赋值
for ii in range(2,lieshu):#从第3列开始选择1,3列,1,4列.....
    lietemp=data.iloc[:,[0,ii]]
    lie=data.columns.values[ii]#按位置提取列标题
    xueke=[]
    for i in lietemp['姓名']:
        xueke.append(lie)
    lietemp=lietemp.copy()
    lietemp.rename(columns={lie:'成绩'},inplace=True)
    lietemp['学科']=xueke
    l1=pd.concat([l1,lietemp])
print(l1)
#l1=l1.sort_index()
#print(l1)
l1.to_excel('1.xlsx',sheet_name='sheet000',index=False)

 

 

举报

相关推荐

0 条评论