将 np.random.rand 应用于组 - 优化问题
Apply np.random.rand to groups - optimization issue
需要优化单行代码,在计算过程中将执行数万次,因此时间成为问题。看似简单实则卡住了
行是:
df['Random']=df['column'].groupby(level=0).transform(lambda x: np.random.rand())
所以我想给每个组分配相同的随机数和"ungroup"。由于使用此实现多次调用 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。
需要优化单行代码,在计算过程中将执行数万次,因此时间成为问题。看似简单实则卡住了
行是:
df['Random']=df['column'].groupby(level=0).transform(lambda x: np.random.rand())
所以我想给每个组分配相同的随机数和"ungroup"。由于使用此实现多次调用 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。