我有一个数据框,其中包含有关我希望从中生成样本的总体信息。我还有一个数据框sample_info
,它详细说明了population
我的示例中需要的数据框中每个组的数量。我已经开发了一些代码来实现我的需要,但鉴于我正在使用的大型数据集,它的运行速度比我想要的要慢。
有没有办法对总体框架进行分组并将抽样应用于组,而不是像我在下面所做的那样循环遍历它们?
import pandas as pd
population = pd.DataFrame([[1,True],[1,False],[1,False],[2,True],[2,True],[2,False],[2, True]], columns = ['Group ID','Response'])
Group ID Response
0 1 True
1 1 False
2 1 False
3 2 True
4 2 True
5 2 False
6 2 True
sample_info = pd.DataFrame([[1,5],[2,6]], columns = ['Group ID','Sample Size'])
output = pd.DataFrame(columns = ['Group ID','Response'])
Group ID Sample Size
0 1 5
1 2 6
for index, row in sample_info.iterrows():
output = output.append(population.loc[population['Group ID'] == row['Group ID']].sample(n=row['Sample Size'], replace …
Run Code Online (Sandbox Code Playgroud) 我有一个数据框,其中包含一个包含一系列字符串的列
books = pd.DataFrame([[1,'In Search of Lost Time'],[2,'Don Quixote'],[3,'Ulysses'],[4,'The Great Gatsby'],[5,'Moby Dick']], columns = ['Book ID', 'Title'])
Book ID Title
0 1 In Search of Lost Time
1 2 Don Quixote
2 3 Ulysses
3 4 The Great Gatsby
4 5 Moby Dick
Run Code Online (Sandbox Code Playgroud)
以及边界的排序列表
boundaries = ['AAAAAAA','The Great Gatsby', 'zzzzzzzz']
Run Code Online (Sandbox Code Playgroud)
我想使用这些边界将数据框中的值分类为按字母顺序排列的bin,类似于pd.cut()
对数字数据的工作方式。我的愿望输出如下所示。
Book ID Title binning
0 1 In Search of Lost Time ['AAAAAAA','The Great Gatsby')
1 2 Don Quixote ['AAAAAAA','The Great Gatsby')
2 3 Ulysses ['The Great Gatsby','zzzzzzzz') …
Run Code Online (Sandbox Code Playgroud)