大神们看看代码能否优化简洁些,望诸位赐教!
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)