锐哥@ 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 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题