美文网首页
python 两个excel合并

python 两个excel合并

作者: 0error_ | 来源:发表于2020-03-23 22:00 被阅读0次

    现在有两个excel,内容分别为学生的名单(姓名、班级)和学生的成绩(姓名、成绩,没有具体班级,只有班级大类)。想把两个表合并,按照学生所在班级的顺序合并,这样以班为单位,看学生成绩方便。

    一、先安装anaconda、pycharm、配置环境
    看这里:https://blog.csdn.net/qq_18424081/article/details/85856713#%EF%BC%882%EF%BC%89%E5%9C%A8PyCharm%E5%AF%BC%E5%85%A5Anaconda

    1. 安装anaconda
    2. 安装pycharm
    3. 在pycharm配anaconda环境【关键的一张图】


      image.png

    二、惊喜地发现anaconda里有需要用的包:pandas

    https://www.cnblogs.com/wodexk/p/10803979.html
    https://ask.csdn.net/questions/718505

    pandas.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
             left_index=False, right_index=False, sort=True,
             suffixes=('_x', '_y'), copy=True, indicator=False,
             validate=None)
    

    how:
    inner是取交集,outer是取并集
    因为有退学的学生还有重名的学生,所以就取并集都保留。

    学生名单长这样:
    image.png
    作业成绩长这样:
    image.png

    重名没想到什么更好的解决办法,但是系统里导出来的作业成绩有学生所在的大班,所以就暂时先都保留。这样如果有重名的学生,会多出来两条记录(一共出来4条记录,有2条是错误的)

    import pandas as pd
    if __name__ == "__main__":
        score_data = pd.read_excel('作业成绩.xlsx')
        student_data = pd.read_excel('学生名单.xlsx')
        tables = pd.merge(student_data,score_data,how="outer", on=['姓名'])
        tables.to_excel('可查询具体班级的学生成绩表.xlsx')
    

    合并之后这样:


    image.png

    相关文章

      网友评论

          本文标题:python 两个excel合并

          本文链接:https://www.haomeiwen.com/subject/urqgyhtx.html