我有一个带有类别列的数据框。 Df每个类别的行数不同。
category number_of_rows
cat1 19189
cat2 13193
cat3 4500
cat4 1914
cat5 568
cat6 473
cat7 216
cat8 206
cat9 197
cat10 147
cat11 130
cat12 49
cat13 38
cat14 35
cat15 35
cat16 30
cat17 29
cat18 9
cat19 4
cat20 4
cat21 1
cat22 1
cat23 1
我想从每个类别中选择不同数量的行。(而不是每个类别的n个固定行数)
Example input:
size_1 : {"cat1": 40, "cat2": 20, "cat3": 15, "cat4": 11, ...}
Example input:
size_2 : {"cat1": 51, "cat2": 42, "cat3": 18, "cat4": 21, ...}
我想做的实际上是分层抽样,其中每个类别对应给定数量的实例。
此外,应随机选择。例如,我不需要size_1的前40个值。[“ cat1”],我需要随机的40个值。
感谢您的帮助。
这里是如何随机采样
# Selects one row randomaly using sample()
# without give any parameters.
# Import pandas package
import pandas as pd
# Define a dictionary containing employee data
data = {'Name':['Jai', 'Princi', 'Gaurav', 'Anuj', 'Geeku'],
'Age':[27, 24, 22, 32, 15],
'Address':['Delhi', 'Kanpur', 'Allahabad', 'Kannauj', 'Noida'],
'Qualification':['Msc', 'MA', 'MCA', 'Phd', '10th']}
# Convert the dictionary into DataFrame
df = pd.DataFrame(data)
# Select one row randomaly using sample()
# without give any parameters
df.sample(n=10)
# n is basically number of rows you want to sample
https://www.geeksforgeeks.org/how-to-randomly-select-rows-from-pandas-dataframe/