如何在熊猫中为每个分组依据有效地分配单个值

西耶

我有一列非唯一数字的Pandas DataFrame。我想为每个非唯一值返回不同的随机数,但是在出现非唯一值的每一行都返回相同的随机数,即随机数输出数据框的形状与未分组数据框的形状匹配。

我可以这样: df.groupby('NonUnique').transform(lambda x: np.random.rand())

根据需要,这将为中的每个列返回不同的随机数df

但是,这对于大型数据帧np.random.rand(df.size)来说很慢,但是非常快。有什么方法可以更有效地实现我想要的吗?我似乎找不到一种向量化每组作业的方法...

耶斯列尔

根据唯一值的长度创建数组,然后使用factorizewithnumpy indexing重复:

np.random.seed(123)

df = pd.DataFrame({'A':list('aaabbb')})

a = np.random.rand(len(df['A'].unique()))

df['B'] = a[pd.factorize(df.A)[0]]
print (df)
   A         B
0  a  0.696469
1  a  0.696469
2  a  0.696469
3  b  0.286139
4  b  0.286139
5  b  0.286139

详细说明

print (pd.factorize(df.A)[0])
[0 0 0 1 1 1]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python中有效地将字典中的值分组

如何有效地按索引熊猫分组的列中选择最小值?

如何在熊猫中有效地分栏和分组?

如何根据熊猫中字符串的出现情况有效地分配列值?

有效地为HTML中的每个字符分配颜色

如何有效地从熊猫的列表列中计算每个值的出现次数?

如何有效地选择熊猫中的几个值范围?

使用大熊猫为大型数据帧有效地计算每个时间段的值

如何在熊猫数据框中有效地存储分数列表和按日期分组

如何有效地将位位置提取为C中的值

如何有效地从单个点计算熊猫数据框中每一行的距离?

如何在 Django Reversions 中的给定时间有效地检索属性的值?

如何使用Python有效地分配预定义大小的文件并将其填充为非零值?

如何在C ++中有效地将数字值重新分配给字符数组

如何有效地从矩阵的每个重复行中获取最小值和最大值

如何有效地删除熊猫中某些列的值大于99%的所有行?

Python:有效地为每个组提取一个值

如何使用for循环将数据有效地附加到pandas数据帧中

如何在pyspark的高基数分类列中以低频率计数有效地分组级别?

如何在RXJS 5+中按时间有效地对事件进行分组

如何在 Matlab 中有效地计算单个有限差分?

如何有效地将向量对按第二个值分组?

根据 r 中的名称列表有效地为新变量分配名称

如何在Crashlytics(Fabrics)中有效地将非致命异常分组?

如何在Javascript中有效地匹配和分组字符串?

如何有效地组合熊猫数据框

如何在python和php中使用ZMQ有效地发送单个消息

如何使用Python将批量数据有效地插入Cassandra?

如何使用Python根据交易数据有效地创建用户图?