使用Python对数据进行一对多映射

文章来源:一氧化碳中毒   发布时间:2021-10-5 15:59:21   点击数:
  最好白癜风医院电话 https://wapyyk.39.net/bj/zhuanke/89ac7.html

我们现在有6位考生(Zweig、Einstein、Goethe、Merkel、Beethoven、Mozart),每位考生要参加5个科目的考试(Word、Excel、PPT、Outlook、Access),为此要制作一份成绩单,为将来记录考试成绩之用,要求结构如下:

在Excel中完成上述操作,并不复杂,但需要反复复制粘贴和填充,当数据量更大的时候,工作将变得相当繁琐。下面,我们使用Pyhton配合Excel来完成,其方法如下:

#导入pandas模块importpandasaspd#下面是姓名和科目信息,保存在两个列表中names=[Zweig,Einstein,Goethe,Merkel,Beethoven,Mozart]exams=[Word,Excel,PPT,Outlook,Access]#首先建立一个空的列表,用来容纳映射后的数据list=[]#分别遍历两个列表,并使用append方法逐一写入数据fornameinnames:forexaminexams:list.append([name,exam])#将完成的二维列表转换为pandas数据框,并写入到名为“report.xlsx"的文件中name_list=pd.DataFrame(list,columns=[Name,Exam])name_list.to_excel(report.xlsx,index=False)

完成的效果就如上面图中所示。如果我们再精简一下,也可以将两个for循环转换为如下写法:

#导入pandas模块importpandasaspd#下面是姓名和科目信息,保存在两个列表中names=[Zweig,Einstein,Goethe,Merkel,Beethoven,Mozart]exams=[Word,Excel,PPT,Outlook,Access]#建立一个由上面两个列表进行映射形成的二维列表list=[[x,y]forxinnamesforyinexams]#将完成的二维列表转换为pandas数据框,并写入到名为“report.xlsx"的文件中name_list=pd.DataFrame(list,columns=[Name,Exam])name_list.to_excel(report.xlsx,index=False)

在上面的方法中,其实核心的处理语句只有一句,就是“list=[[x,y]forxinnamesforyinexams]”,你是否感觉到了简约之美?

Essen5

转载请注明:http://www.lwblm.com/zdwh/12505.html
  • 上一篇文章:
  • 下一篇文章: 没有了