gpt4 book ai didi

python - 如何从具有预设条件的数据框中随机抽取一定数量的行?

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

我有以下数据框:

d = {'Pic': ['D1', 'D1', 'D2', 'D2', 'D3', 'D3', 'D4', 'D4'], 'Rating': [42, 54, 61, 72, 43, 52, 91, 22], 'Pair': [1, 2, 1, 2, 1, 2, 1, 2]}
df = pd.DataFrame(data=d)
df
Pic Rating Pair
0 D1 42 1
1 D1 54 2
2 D2 61 1
3 D2 72 2
4 D3 43 1
5 D3 52 2
6 D4 91 1
7 D4 22 2

我需要选择 2 行的子集,以便 Pic 列中有 2 个唯一值,但如果随机选择一个值(例如,“D1”是从 Pic 列中选择的),则对应的对是也被选中(因此具有 D1 的行将被选中具有对 1,并且 D1 具有对 2)。

我尝试了以下方法:

df_Selected= df.sample(n=2, random_state=2)

但我不确定如何确保从“Pic”列中随机选择的每个值也从“Pair”列中选择其对。因此,如果随机选择以下行:

   Pic  Rating  Pair
0 D1 42 1

我还需要随机选择以下行:

       Pic  Rating  Pair
0 D1 42 2

最佳答案

import pandas as pd
import random

d = {'Pic': ['D1', 'D1', 'D2', 'D2', 'D3', 'D3', 'D4', 'D4'],
'Rating': [42, 54, 61, 72, 43, 52, 91, 22],
'Pair': [1, 2, 1, 2, 1, 2, 1, 2]}

df = pd.DataFrame(data=d)

random_pic_list = random.sample(df['Pic'].unique().tolist(), 2)

df_slice = df[df['Pic'].isin(random_pic_list)]

print(df_slice)

Pic Rating Pair
0 D1 42 1
1 D1 54 2
2 D2 61 1
3 D2 72 2

关于python - 如何从具有预设条件的数据框中随机抽取一定数量的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61374788/

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