五秒速的刀 2021-03-28 17:14 采纳率: 100%
浏览 87
已采纳

python中用pandas处理数据

 

对于这种csv文件,用pandas怎么可以将红圈部分的数据补全,每个学生都考了四门,怎样可以进行数据补全,整个csv文件也没有空值。

求大佬支援

 

  • 写回答

3条回答 默认 最新

  • 关注

    试下这种方式:

    先构造一个姓名和科目的二维表, 然后merge. 可以对缺失值进行填充

    import pandas as pd
    import numpy as np
    
    data = pd.read_excel('c:/users/yyz/desktop/123.xlsx')
    
    lis1 = data['科目'].unique().tolist()
    lis2 = data['姓名'].unique().tolist()
    
    data2 = pd.DataFrame([[i,j] for i in lis2 for j in lis1],columns=['姓名','科目'])
    
    result = pd.merge(data,data2,on=['姓名','科目'],how='outer').sort_values(by=['姓名','科目']).reset_index(drop=True)
    print(result)
               科目          姓名    成绩
    0   algorithm  zhaoyuchen  21.0
    1    computer  zhaoyuchen  22.0
    2     english  zhaoyuchen  20.0
    3        math  zhaoyuchen   NaN
    4   algorithm      zhouqi  19.0
    5    computer      zhouqi   NaN
    6     english      zhouqi  18.0
    7        math      zhouqi   NaN
    8   algorithm     zhoutao  15.0
    9    computer     zhoutao  17.0
    10    english     zhoutao  14.0
    11       math     zhoutao  16.0
    12  algorithm         zss  11.0
    13   computer         zss  13.0
    14    english         zss  10.0
    15       math         zss  12.0
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 目标检测算法移植到arm开发板
  • ¥15 利用JD51设计温度报警系统
  • ¥15 快手联盟怎么快速的跑出建立模型
  • ¥15 关于腾讯云服务器中,PHP页面无法打开的问题
  • ¥60 如何把照片修复成原始拍摄图
  • ¥80 Exited too quickly (process log may have details)
  • ¥15 爬知乎登录之后内容加载不出来
  • ¥15 怎么用protues测量通频带
  • ¥15 zepelin使用sparkInterpreter 异常
  • ¥15 paho mqtt 接收不到消息