【发布时间】:2018-07-12 00:16:38
【问题描述】:
我正在尝试将一个数组px 中的每个唯一变量与另一个数组py 中的随机数进行比较。如果px 中的元素大于或等于py 的元素,那么我想将该值记为True。
这里有一些代码。
import pandas as pd
import random
px = np.array([0.360617,0.360617,0.360617,0.989699,0.989699,0.989699,-1.020482])
py = np.random.uniform(low=0, high=1, size=len(px))
df = pd.DataFrame({'px': px, 'py': py, 'status': px >= py})
生成的数据框如下所示:
px py status
0 0.360617 0.509826 False
1 0.360617 0.129870 True
2 0.360617 0.818778 False
3 0.989699 0.953721 True
4 0.989699 0.740662 True
5 -1.020482 0.302593 False
但我需要它看起来像这样。想象一下,每个唯一的px 都有自己关联的随机值py,介于 0 和 1 之间。
name px py status
a 0.360617 0.509826 False
a 0.360617 0.509826 False
a 0.360617 0.509826 False
b 0.989699 0.953721 True
b 0.989699 0.953721 True
c -1.020482 0.302593 False
我想这可以通过一个 for 循环来完成,其中每个 name 都与某个随机值相关联。
【问题讨论】:
-
你应该在你的例子中设置一个种子编号,这样我们就可以为“py”系列使用相同的值。
-
关联的
py是如何确定的? -
@Dylan 我已经更新了问题
标签: python arrays pandas for-loop random