qq_45971013
2021-03-28 17:14
采纳率: 100%
浏览 78
已采纳

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条)

相关推荐 更多相似问题