one pen 2022-02-13 18:09 采纳率: 0%
浏览 28

如何依据2018年ID数据及其对应目标变量对2019年的目标变量进行补充?

问题描述:2018年ID有3万多个,每个ID都有其对应的目标变量(以下简称V)数据;2019年ID有4万多个(与2018年的ID有相同,但不包含所有的2018年的ID),其中2019年的V部分数据缺失,缺失的部分需要根据2018年的V进行补充.

需要解决的问题:在2018年的ID中选出与2019年ID相同的ID,并依据选出的相同的ID对应的V数据填充至2019年的V数据中.

不知道如何解决,在线求教……

img

  • 写回答

1条回答 默认 最新

  • ENGineer_zlshuo 2022-02-13 23:14
    关注
    import pandas as pd
    
    # 这是你的文件路径,默认你的文件为excel.xlsx
    excel_file = 'D:/pythonProject/ID.xlsx'
    
    # 读取文件数据为df结构(DataFrame结构),读取的sheet名字为“ID”, 先后按['2018年ID', '2019年ID']的顺序进行升序排序
    df = pd.read_excel(excel_file, sheet_name = 'ID').sort_values(by = ['2018年ID', '2019年ID'], ascending=[True, True])
    
    index = 0  # 开始检索2018年ID的位置为0(即2018年的第一个ID)
    for row_c in range(0, df.shape[0]):  # 遍历2019年信息的每一行
        for row_a in range(index, df.shape[0]):   # 遍历2018年信息的每一行,如果同一列数据存在重复情况,此行改为for row_a in range(0, df.shape[0]):
            if df.iloc[row_c, 2] == df.iloc[row_a, 0]:  # 如果2019年ID等于2018年ID,按你的图片来,位置分别在第三列和第一列,对应索引20
                df.iloc[row_c, 3] = df.iloc[row_a, 1]  # 更改2019年变量,按你的图片来,位置分别在第四列和第二列,对应索引31
                index = row_a + 1 # 这样可以加快匹配速度,已经好了的就不匹配了,但是前提是你的同一列ID没有重复的数据
    
    save_way = 'D:/pythonProject/result.xlsx'  # 结果文件的保存路径
    df.to_excel(save_way, sheet_name = 'ID', index=False)  # 生成结果文件
    

    img

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 2月13日

悬赏问题

  • ¥15 TeleScan不能修改bar
  • ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别
  • ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因
  • ¥15 NRF24L01能发送但是不能接收
  • ¥15 想问一下这种情况怎么解决呢(关键词-file)