Я пытаюсь уменьшить размер данных, поэтому у меня возникли следующие условия: для каждого месяца я только хочу случайным образом выбирать от 5 до 10 записей продаж каждого дилера (дилеров с уникальным идентификатором). Данные выглядят так:
Date | Product | Revenue | Dealer ID
Jan 7,18| XXX | 10 | 1212
Jan 7,18| YYY | 13 | 1212
Jan 7,18| XXX | 20 | 2500
Jan 7,18| ZZZ | 5 | 1212
....
Jan 8,18| ZZZ | 15 | 1212
Jan 8,18| AAA | 17 | 2500
Jan 8,18| MMM | 9 | 1318
...
, а выходные данные о продажах в январе должны выглядеть следующим образом:
Date | Product | Revenue | Dealer ID
Jan 7,18 | XXX | 10 | 1212
Jan 7,18 | ZZZ | 5 | 1212
Jan 10,18| ZZZ | 15 | 1212
Jan 17,18| AAA | 17 | 1212
Jan 22,18| MMM | 9 | 1212
Jan 27,18| ZZZ | 15 | 1212
Jan 28,18| MMM | 9 | 1212
...
Я бы написал вложенное значение для l oop. для каждого идентификатора дилера для каждого месяца случайным образом выбирайте n записей. n - случайное число от 5 до 10. Я не совсем уверен, как l oop через месяцы, и не могу найти способ получить случайные записи ..
У кого-нибудь есть более простой способ сделать эту задачу? Вот моя попытка:
unique_ID = np.unique(df['Dealer ID'].sort_values(ascending=True))
months = ["January", "Feburary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
years = range(2018, 2022)
for y in years:
for m in months:
for i in unique_ID:
if df['Dealer ID'] == i: 'have to loop through the file and pick out all the entries with that Dealer ID'
'create a list to store them'
'and then randomly select 8 entries from each of the dealer'