gpt4 book ai didi

python - 在 Python Pandas 数据集中每行保留一个随机最低值

转载 作者:行者123 更新时间:2023-12-01 01:06:51 24 4
gpt4 key购买 nike

我有一个数据框,其中每一行都根据多个属性与所有其他行进行排名。一行可以在 2 个属性中具有相同的排名(意味着一行可以在少数属性中是最好的),如下面的第 2 行和第 3 行所示:

     att_1  att_2  att_3 att_4
ID
984 5 3 1 46
794 1 1 99 34
6471 20 2 3 2

每行,我想保留索引 (ID) 和具有最低值的单元格 - 如果单元格超过 1 个,我必须随机选择一个单元格以保持正态分布。

我设法将 df 转换为 numpy 数组并运行以下命令:

idx = np.argmin(h_data.values, axis=1)

但我每次都会得到第一行..

期望的输出:

ID   MIN
984 att_3
794 att_2
6471 att_1

谢谢!

最佳答案

使用 numpy.random.choice 的列表理解:

df['MIN'] = [np.random.choice(df.columns[x == x.min()], 1)[0] for x in df.values]
print (df)
att_1 att_2 att_3 att_4 MIN
ID
984 5 3 1 46 att_3
794 1 1 99 34 att_1
6471 20 2 3 2 att_2

关于python - 在 Python Pandas 数据集中每行保留一个随机最低值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55257402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com