锐哥@ 2022-11-27 19:47 采纳率: 80%
浏览 6
已结题

关于#Python#的问题,如何解决?

问题:数值填充
使用语言:python
我的思路:一个的表格一共有130个字段每个字段都有null nan 空值甚至还有点想一个一个字段写将null nan空值甚至还有点填补为众数但是这样会太慢了并且有的点就是众数所以想用for循环做、这样快点,如果众数是点就用value counts中的第二的数进行填充否则就用就用众数(第一个众数)填充。请问各位这个for循环怎么写?谢谢,有偿 谢谢
如果我的思路有什么问题欢迎各位指点

img

img

  • 写回答

5条回答 默认 最新

  • 悠闲的小鱼Liu 2022-11-27 20:56
    关注

    你看看是这个意思不?

    
    import numpy as np
    import pandas as pd
    df = pd.DataFrame([[1, 2, 3, 'null'],
                       [1, 2, 'null', '.'],
                       [9, np.nan, 'nan', '.'],
                       [13, 14, 15, 16]])
    print(df)
    
    # 将字符串的nan和null替换成空值
    df.replace('null', np.nan, regex=True, inplace=True)
    df.replace('nan', np.nan, regex=True, inplace=True)
    
    
    for col in df.columns:
        a = df[col].mode()[0] 
        if a == '.':
            # 将点替换成空值再求众数,因为 没有设置inplace=True不会改变df本身。
            b = df[col].replace('.', np.nan).mode()[0]
            # fillna() 方法来替换空值
            df[col].fillna(value=b, inplace=True)
        else:
            df[col].fillna(value=a, inplace=True)
    print(df)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 12月5日
  • 已采纳回答 11月27日
  • 创建了问题 11月27日

悬赏问题

  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?