gpt4 book ai didi

python - 如何生成值位于两个现有列之间的新列

转载 作者:行者123 更新时间:2023-12-03 22:59:58 25 4
gpt4 key购买 nike

我需要根据两个现有列的值添加一个新列。
我的数据集如下所示:


Date Bid Ask Last Volume
0 2021.02.01 00:01:02.327 1.21291 1.21336 0.0 0
1 2021.02.01 00:01:21.445 1.21290 1.21336 0.0 0
2 2021.02.01 00:01:31.912 1.21287 1.21336 0.0 0
3 2021.02.01 00:01:32.600 1.21290 1.21336 0.0 0
4 2021.02.01 00:02:08.920 1.21290 1.21338 0.0 0
... ... ... ... ... ...
80356 2021.02.01 23:58:54.332 1.20603 1.20605 0.0 0
我需要生成一个名为“New”的新列,“New”列的值需要在“Bid”列和“Ask”列之间有一个随机数。对于“New”列的每个值,它必须在从买入价到卖出价的范围内(可以等于买入价或卖出价)。
我试过这样做
df['rand_between'] = df.apply(lambda x: np.random.randint(x.Ask,x.Bid), axis=1)
但我得到了这个
Exception has occurred: ValueError
low >= high
我是 Python 的新手。

最佳答案

使用 np.random.uniform 所以你会得到一个随机浮点数,在你的上限和下限之间有相等的概率,并带有闭包 [low_bound, high_bound)。
也抛弃 apply ; np.random.uniform 可以使用边界数组生成数字。 (我在底部添加了一行以使这一点显而易见)。

import numpy as np
df['New'] = np.random.uniform(df.Bid, df.Ask, len(df))
                      Date        Bid        Ask  Last  Volume         New
0 2021.02.01 00:01:02.327 1.21291 1.21336 0.0 0 1.213114
1 2021.02.01 00:01:21.445 1.21290 1.21336 0.0 0 1.212969
2 2021.02.01 00:01:31.912 1.21287 1.21336 0.0 0 1.213342
3 2021.02.01 00:01:32.600 1.21290 1.21336 0.0 0 1.212933
4 2021.02.01 00:02:08.920 1.21290 1.21338 0.0 0 1.212948
5 2021.02.01 00:02:08.920 100.00000 115.00000 0.0 0 100.552836

关于python - 如何生成值位于两个现有列之间的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66590229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com