2024-04-26 18:39:27 发布
网友
我需要从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(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
你可以试试这个:
相关问题 更多 >
编程相关推荐