Pandas数据帧:在

2024-04-26 18:39:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从0到1生成5000个随机值,并为每个找到“sum”列中最接近的较大值,然后将此行放入新的数据帧中。你知道吗

我的旧数据帧:

Probability  sum  
0.008773     0.008773  
0.008715     0.017488  
0.007244     0.024732  
0.006997     0.031730

因此,它将是一个新的数据帧,比旧的数据帧有5000行。你知道吗


Tags: 数据probabilitysum
1条回答
网友
1楼 · 发布于 2024-04-26 18:39:27

你可以试试这个:

## 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

相关问题 更多 >