Python 数据帧:查找行中最近的较大值
我需要从0到1生成5000个随机值,并为每个查找“sum”列中最近的较大值,然后将此行放入新的数据框中 我的旧数据帧:Python 数据帧:查找行中最近的较大值,python,pandas,Python,Pandas,我需要从0到1生成5000个随机值,并为每个查找“sum”列中最近的较大值,然后将此行放入新的数据框中 我的旧数据帧: Probability sum 0.008773 0.008773 0.008715 0.017488 0.007244 0.024732 0.006997 0.031730 因此,它将是一个新的数据帧,与旧数据帧相比有5000行。您可以尝试以下方法: ## sample data sudo = pd.read_fwf(Str
Probability sum
0.008773 0.008773
0.008715 0.017488
0.007244 0.024732
0.006997 0.031730
因此,它将是一个新的数据帧,与旧数据帧相比有5000行。您可以尝试以下方法:
## sample data
sudo = pd.read_fwf(StringIO(u'''
Probability sumt
0.008773 0.008773
0.008715 0.017488
0.007244 0.024732
0.006997 0.031730
'''),header=1)
# get sum values
sl = sudo.sumt.values.tolist()
# create random sample of 5000 values between 0 and 1
np.random.seed(10)
df = pd.DataFrame({'randoms': list(np.random.random(5000))})
# get closest value
df['random_map'] = df['randoms'].apply(lambda x: min(sl, key= lambda y: abs(y - x)))
print(df.head(10))
randoms random_map
0 0.771321 0.031730
1 0.020752 0.017488
2 0.633648 0.031730
3 0.748804 0.031730
4 0.498507 0.031730
5 0.224797 0.031730
6 0.198063 0.031730
7 0.760531 0.031730
8 0.169111 0.031730
9 0.088340 0.031730
您希望计算0到1之间随机生成的5000个值的累积和。这就是问题吗?你的问题很不清楚。您想要的输出是什么样子的?例如:第一个随机数0.01999999999,所以我需要选择值为0.024732的行。下一个4999生成的随机数也是一样,这就是我需要的。非常感谢你!