我有一个Pandas DataFrame,其中包含一列非唯一数字。我希望为每个非唯一值返回不同的随机数,但在出现相同值的每一行中返回相同的随机数,即输出的随机数数据框的形状与未分组的数据框相匹配。
我可以这样做:
然而,对于大型数据框来说速度很慢,但是
我可以这样做:
df.groupby('NonUnique').transform(lambda x: np.random.rand())
这将返回所需的每个 df 列中的不同随机数。然而,对于大型数据框来说速度很慢,但是
np.random.rand(df.size)
很快。是否有更有效的方法实现我想要的结果?我似乎找不到一种向量化分组分配的方法...
s = pd.Series(np.random.randint(1,100,40)) pd.factorize(s)[0]
- Fourierfactorize
对于唯一的组始终返回相同的值0,1,2...
。 - jezrael