我有一个 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]=2
和 foo['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/