Python Pandas - 从分箱数据中抽取一定数量的个体
Python Pandas - Sample certain number of individuals from binned data
这是我正在使用的 DF 的虚拟示例。它有效地包含分箱数据,其中第一列给出类别,第二列给出该类别中的个体数量。
df = pd.DataFrame(data={'Category':['A','B','C','D','E','F','G','H','I'],
'Count':[1000,200,850,350,4000,20,35,4585,2],})
我想从这些数据中随机抽样,比如 100 个人。因此,例如我的随机样本可能是:
sample1 = pd.DataFrame(data={'Category':['A','B','C','D','E','F','G','H','I'],
'Count':[15,2,4,4,35,0,15,25,0],})
即样本中包含的个体数量不能超过任何类别中的实际数量。从一个类别中抽取 0 个个体是可能的(对于计数较低的类别更有可能)。
我该怎么做呢?我觉得一定有一个简单的答案,但我想不出!
提前致谢!
您可以尝试更换样品:
df.sample(n=100, replace=True, weights=df.Count).groupby(by='Category').count()
这是我正在使用的 DF 的虚拟示例。它有效地包含分箱数据,其中第一列给出类别,第二列给出该类别中的个体数量。
df = pd.DataFrame(data={'Category':['A','B','C','D','E','F','G','H','I'],
'Count':[1000,200,850,350,4000,20,35,4585,2],})
我想从这些数据中随机抽样,比如 100 个人。因此,例如我的随机样本可能是:
sample1 = pd.DataFrame(data={'Category':['A','B','C','D','E','F','G','H','I'],
'Count':[15,2,4,4,35,0,15,25,0],})
即样本中包含的个体数量不能超过任何类别中的实际数量。从一个类别中抽取 0 个个体是可能的(对于计数较低的类别更有可能)。
我该怎么做呢?我觉得一定有一个简单的答案,但我想不出!
提前致谢!
您可以尝试更换样品:
df.sample(n=100, replace=True, weights=df.Count).groupby(by='Category').count()