需要优化在计算期间将执行数万次的单行代码,因此时间成为一个问题。看似简单,实则卡住了。
该行是:
df['Random']=df['column'].groupby(level=0).transform(lambda x: np.random.rand())
所以我想为每个组分配相同的随机数并“取消分组”。由于使用此实现多次调用 rand(),因此代码非常无效。
有人可以帮助向量化吗?
需要优化在计算期间将执行数万次的单行代码,因此时间成为一个问题。看似简单,实则卡住了。
该行是:
df['Random']=df['column'].groupby(level=0).transform(lambda x: np.random.rand())
所以我想为每个组分配相同的随机数并“取消分组”。由于使用此实现多次调用 rand(),因此代码非常无效。
有人可以帮助向量化吗?
试试这个!
df = pd.DataFrame(np.sort(np.random.randint(2,5,50)),columns=['column'])
uniques =df['column'].unique()
final = df.merge(pd.Series(np.random.rand(len(uniques)),index=uniques).to_frame(),
left_on='column',right_index=True)
您可以存储uniques
然后每次运行最后一行以获取新的随机数并加入 df。