python - 通过从 Pandas 数据框中的非缺失值中随机选择来填充缺失数据

标签 python pandas missing-data

我有一个 pandas 数据框,其中有几个缺失值。我注意到非缺失值彼此接近。因此,我想通过随机选择非缺失值来估算缺失值。

例如:

import pandas as pd
import random
import numpy as np

foo = pd.DataFrame({'A': [2, 3, np.nan, 5, np.nan], 'B':[np.nan, 4, 2, np.nan, 5]})
foo
    A   B
0   2 NaN
1   3   4
2 NaN   2   
3   5 NaN
4 NaN   5

我想要例如 foo['A'][2]=2foo['A'][5]=3 我的 pandas DataFrame 的形状是 (6940,154)。 我试试这个

foo['A'] = foo['A'].fillna(random.choice(foo['A'].values.tolist()))

但它不起作用。你能帮我实现吗?最好的问候。

最佳答案

您可以使用 pandas.fillna 方法和 random.choice 方法通过随机选择特定列来填充缺失值。

import random
import numpy as np

df["column"].fillna(lambda x: random.choice(df[df[column] != np.nan]["column"]), inplace =True)

其中 column 是您要用非 nan 值随机填充的列。

关于python - 通过从 Pandas 数据框中的非缺失值中随机选择来填充缺失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36413314/

相关文章:

python - 将列表转换为 numpy 数组时出现内存错误

python - 当按下一个键时,变量只增加一个

apache-spark-sql - Spark-Dataframe 枢轴缺少列/值

python - 如何在这个 Tkinter 脚本中正确打包?

python - 如何将多个函数应用于 groupby 对象

python - 将日期转移到规范化的日期列中

python - 如何更改Python中导入数据的列值

python - Pandas 数据帧向前填充衰减

python - Pandas : fill NaN with the closest value, 根据类别列

Python Virtualbox API