最近我一直在使用pandas,现在我尝试将数据框中的NaN值替换为不同的正态分布随机值。
假设我有一个没有标题的CSV文件:
0
0 343
1 483
2 101
3 NaN
4 NaN
5 NaN
我期望的结果应该类似于这样
0
0 343
1 483
2 101
3 randomnumber1
4 randomnumber2
5 randomnumber3
但是我得到了以下内容:
0
0 343
1 483
2 101
3 randomnumber1
4 randomnumber1
5 randomnumber1 # all NaN filled with same number
目前为止我的代码
import numpy as np
import pandas as pd
df = pd.read_csv("testfile.csv", header=None)
mu, sigma = df.mean(), df.std()
norm_dist = np.random.normal(mu, sigma, 1)
for i in norm_dist:
print df.fillna(i)
我想要从数据框中获取NaN行的数量,并将np.random.normal(mu, sigma, 1)
中的数字1替换为NaN行的总数,这样每个NaN可能会有不同的值。
但我想问是否有其他简单的方法来完成此操作?
谢谢您的帮助和建议。