我有一个带有 NaN 的 Python 数据框,如下所示:
import pandas as pd
details = {
'info1' : [10,None,None,None,None,None,15,None,None,None,5],
'info2' : [15,None,None,None,10,None,None,None,None,None,20],
}
df = pd.DataFrame(details)
print(df)
如何用特定范围(基于有值的行)内的随机数(例如,uniform)替换 NaN,如下所示:
IIUC,您可以用随机范围的数字替换 nan 值,如下所示:
details = {
'info1' : [10,None,None,None,None,None,15,None,None,None,5],
'info2' : [15,None,None,None,10,None,None,None,None,None,20],
}
df = pd.DataFrame(details)
df = df.map(lambda x: x if not np.isnan(x) else np.random.randint(10,15))
print(df)
结果:
info1 info2
0 10.0 15.0
1 11.0 13.0
2 11.0 14.0
3 10.0 12.0
4 13.0 10.0
5 12.0 14.0
6 15.0 10.0
7 13.0 14.0
8 14.0 11.0
9 13.0 13.0
10 5.0 20.0