Pandas 的聚类抽样:举例


研究人员经常从人群中抽取样本,并利用样本中的数据得出关于整个人群的结论。

常用的抽样方法是整群抽样,其中将总体分为多个簇,并选择某些簇的所有成员包含在样本中。

本教程介绍如何在 Python 中对 pandas DataFrame 执行聚类采样。

示例:Pandas 中的聚类采样

假设一家提供城市旅游的公司想要对其客户进行调查。他们每天提供 10 个旅行团,随机选择 4 个旅行团,并要求每位顾客按照 1 到 10 的等级对他们的体验进行评分。

以下代码显示了如何创建要使用的 pandas DataFrame:

 import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (0)

#createDataFrame
df = pd.DataFrame({'tour': np. repeat (np. arange (1,11), 20),
                   'experience': np. random . normal (loc=7, scale=1, size=200)})

#view first six rows of DataFrame
df. head ()

  tour experience
1 1 6.373546
2 1 7.183643
3 1 6.164371
4 1 8.595281
5 1 7.329508
6 1 6.179532

以下代码展示了如何通过随机选择四次访问并将这些访问中的每个成员都包含在样本中来获取客户样本:

 #randomly choose 4 tour groups out of the 10
clusters = np. random . choice (np. arange (1,11), size=4, replace= False )

#define sample as all members who belong to one of the 4 tour groups
cluster_sample = df[df[' tour ']. isin (clusters)]

#view first six rows of sample
cluster_sample. head ()

tour experience
40 3 5.951447
41 3 5.579982
42 3 5.293730
43 3 8.950775
44 3 6.490348 

#find how many observations came from each tour group
cluster_sample[' tour ']. value_counts ()

10 20
6 20
5 20
3 20
Name: tour, dtype: int64

从结果我们可以看出:

  • 样本中包括来自 10 号旅行团的 20 名顾客。
  • 样本中包括来自 6 号旅游团的 20 名顾客。
  • 样本中包括来自 5 号旅游团的 20 名顾客。
  • 样本中包括来自 3 号旅游团的 20 名顾客。

因此,该样本由来自 4 个不同旅游团的 80 名顾客组成。

其他资源

了解不同类型的抽样方法
大熊猫的分层抽样
对大熊猫进行系统采样

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注