【发布时间】:2019-05-25 12:10:33
【问题描述】:
需要优化在计算期间将执行数万次的单行代码,因此时间成为问题。看似简单,实则卡住了。
该行是:
df['Random']=df['column'].groupby(level=0).transform(lambda x: np.random.rand())
所以我想为每个组分配相同的随机数并“取消组合”。由于使用此实现多次调用 rand(),因此代码非常无效。
有人可以帮忙向量化吗?
【问题讨论】:
-
如果你想分配随机数为什么你需要groupby?您可以直接使用
np.random.rand来填充Random列。 -
一种方法是在 df['column'] 中选择唯一值,在此 df 中创建一个新列,然后与初始数据框连接。但必须存在更优雅的解决方案。
-
需要 groupby() 以确保为每个组分配相同的随机数。
标签: pandas pandas-groupby pandas-apply