我有一个Pandas Dataframe 。它有8528行和18287列。每行是一个样本,所以 Dataframe 有8528个样本,每个样本有一个标签(事实上,每行有一个标签)。有4种类型的标签(4类:(一、B、三、四)。我想随机抽取300个带有“A”标签的样本、300个带有“B”标签的样本、300个带有“C”标签的样本和300个带有“D”标签的样本。然后把这1200个样本和它们的标签放在一个新的Pandas Dataframe 中。我该怎么做呢?
kq0g1dla1#
我假设 Dataframe 变量名为df,列名为label,您可以根据您的名称和代码进行调整。Pandas有一个sample方法,可以选择随机样本。另一种方法concat可以用来合并 Dataframe ,由于列来自相同的原始 Dataframe ,因此在采样的 Dataframe 中列是相同的,因此不需要指定额外的参数。
df
label
a = df[df['label'] == 'A'].sample(n=300) b = df[df['label'] == 'B'].sample(n=300) c = df[df['label'] == 'C'].sample(n=300) d = df[df['label'] == 'D'].sample(n=300) combined = pd.concat([a,b,c,d])
1条答案
按热度按时间kq0g1dla1#
我假设 Dataframe 变量名为
df
,列名为label
,您可以根据您的名称和代码进行调整。Pandas有一个sample方法,可以选择随机样本。
另一种方法concat可以用来合并 Dataframe ,由于列来自相同的原始 Dataframe ,因此在采样的 Dataframe 中列是相同的,因此不需要指定额外的参数。