【发布时间】:2017-05-31 11:12:36
【问题描述】:
我想知道使用比例分配方法从每个级别中抽取多少样本。
我总共有 3 个级别:[小、中、大]。
首先,我想为这 3 个级别的总和。
接下来,我想找出这 3 个级别的概率
接下来,我想用这个概率答案乘以这 3 个级别给出的样本数
最后一步是:样本将被选为每个级别的顶级村庄。
数据:
Village Workers Level
Aagar 10 Small
Dhagewadi 32 Small
Sherewadi 34 Small
Shindwad 42 Small
Dhokari 84 Medium
Khanapur 65 Medium
Ambikanagar 45 Medium
Takali 127 Large
Gardhani 122 Large
Pi.Khand 120 Large
Pangri 105 Large
让我解释一下,我附上excel照片
第一步:我想获取级别的总和值 -> 小、中和高。即 (10+32+34+42)=118 用于小级别。
在下一步中,我想找出以小数点 2 舍入的每个级别的概率。 即 (118/786) =0.15 用于小级别。
并使用每个级别的长度(大小)乘以概率来找出从每个级别中抽取的样本(村庄)的数量。
即对于中等级别,我们有 0.25 的概率,我们有 3 个中等级别的村庄。因此,0.25*3 = 0.75 将从中等水平取样。 因此,它会四舍五入到下一个整数 0.75 ~ 1 取自 Medium 级别的样本,并且会取该级别的顶级村庄。所以,在中等水平的“Dhokri”村将被选中,
我做了一些工作,
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df=pd.read_csv("/home/desktop/Desktop/t.csv")
df = df.sort('Workers', ascending=True)
df['level'] = pd.qcut(df['Workers'], 3, ['Small','Medium','Large'])
df
我正在使用这个命令来获取级别的总和。接下来该怎么办,我很困惑,
df=df.groupby(['level'])['Workers'].aggregate(['sum']).unstack()
是否有可能在 python 中获得我在使用 excel 中得到的那个村庄名称?
【问题讨论】: