Python:从数据帧中随机获取10个值

Python:从数据帧中随机获取10个值,python,pandas,numpy,random,Python,Pandas,Numpy,Random,我正试图建立一个算法来寻找集群的数量。我需要从数据集中指定随机点作为初始平均值 我首先尝试了以下代码: mu=random.sample(df,10) 它给出了索引超出范围的错误 我将其转换为numpy数组,然后 mu=random.sample(np.array(df).tolist(),10) 它不是给10个值,而是给我10个值数组 如何从数据帧中获取10个值作为10个集群的平均值进行初始化?我认为您需要: 样本: np.random.seed(100) df = pd.DataFra

我正试图建立一个算法来寻找集群的数量。我需要从数据集中指定随机点作为初始平均值

我首先尝试了以下代码:

mu=random.sample(df,10) 
它给出了索引超出范围的错误

我将其转换为numpy数组,然后

mu=random.sample(np.array(df).tolist(),10)
它不是给10个值,而是给我10个值数组

如何从数据帧中获取10个值作为10个集群的平均值进行初始化?

我认为您需要:

样本:

np.random.seed(100)
df = pd.DataFrame(np.random.randint(10, size=(20,3)), columns=list('abc'))
print (df)
    a  b  c
0   8  8  3
1   7  7  0
2   4  2  5
3   2  2  2
4   1  0  8
5   4  0  9
6   6  2  4
7   1  5  3
8   4  4  3
9   7  1  1
10  7  7  0
11  2  9  9
12  3  2  5
13  8  1  0
14  7  6  2
15  0  8  2
16  5  1  8
17  1  5  4
18  2  8  3
19  5  0  9
我认为你需要:

样本:

np.random.seed(100)
df = pd.DataFrame(np.random.randint(10, size=(20,3)), columns=list('abc'))
print (df)
    a  b  c
0   8  8  3
1   7  7  0
2   4  2  5
3   2  2  2
4   1  0  8
5   4  0  9
6   6  2  4
7   1  5  3
8   4  4  3
9   7  1  1
10  7  7  0
11  2  9  9
12  3  2  5
13  8  1  0
14  7  6  2
15  0  8  2
16  5  1  8
17  1  5  4
18  2  8  3
19  5  0  9
使用numpy.random.choice

或者numpy.random.permutation

使用numpy.random.choice

或者numpy.random.permutation

mu = df.sample(10)
print (mu)
    a  b  c
11  2  9  9
1   7  7  0
8   4  4  3
5   4  0  9
2   4  2  5
19  5  0  9
13  8  1  0
14  7  6  2
0   8  8  3
9   7  1  1
df.iloc[np.random.choice(np.arange(len(df)), 10, False)]
df.loc[np.random.permutation(df.index)[:10]]

    a  b  c
11  2  9  9
1   7  7  0
16  5  1  8
15  0  8  2
17  1  5  4
19  5  0  9
10  7  7  0
8   4  4  3
6   6  2  4
14  7  6  2