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 名顾客组成。