问题:数值填充
使用语言:python
我的思路:一个的表格一共有130个字段每个字段都有null nan 空值甚至还有点想一个一个字段写将null nan空值甚至还有点填补为众数但是这样会太慢了并且有的点就是众数所以想用for循环做、这样快点,如果众数是点就用value counts中的第二的数进行填充否则就用就用众数(第一个众数)填充。请问各位这个for循环怎么写?谢谢,有偿 谢谢
如果我的思路有什么问题欢迎各位指点
关于#Python#的问题,如何解决?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用