Pracuję nad ramką danych transakcji za pomocą Pythona (anakondy) i powiedziano mi, żebym agregował dane do poziomu tygodniowego, tak aby był jeden wiersz na kombinację tygodnia produktu Chcę się upewnić, że poniższy kod jest poprawny, ponieważ nie Myślę, że w pełni zrozumiałem, co muszę zrobić

dataset.groupby(['id', dataset['history_date'].dt.strftime('%W')])['sales'].sum()

Zauważ, że mój zbiór danych zawiera:

id history_date item_id price inventory sales category_id
0
Rim Sleimi 19 grudzień 2019, 22:50
Głosuję, aby zamknąć to pytanie jako nie na temat, ponieważ jest to wyraźnie pytanie edukacyjne, w którym pytający nie zainwestował czasu, aby spróbować je rozwiązać. Nie ma wyjaśnienia, czego próbowali, i nie podano przykładowych danych.
 – 
John Humphreys
19 grudzień 2019, 22:53
Witaj w przepełnieniu stosu :). Powinieneś otworzyć nowe pytanie po próbie jego rozwiązania. Dołącz kilka przykładowych danych i wyjaśnienie, gdzie nie udało się po próbie.
 – 
John Humphreys
19 grudzień 2019, 22:55
Dziękuję Johnie. Jak widać, pytanie jest mylące: część „jeden wiersz na kombinację produkt-tydzień” jest tym, czego nie rozumiem
 – 
Rim Sleimi
19 grudzień 2019, 23:01

1 odpowiedź

Agregowanie danych oznacza łączenie zbiorów danych na podstawie określonych kryteriów w celu ich zawężenia.

Na przykład wygląda na to, że zbiór danych można podzielić według dat dziennych, gdzie każdy wiersz odpowiada określonej dacie.

Musisz zagregować dane w tygodniowe segmenty zamiast dzielić je codziennie.

Osiąga się to poprzez grupowanie zbiorów danych na podstawie daty i najbardziej szczegółowego / szczegółowego / konkretnego parowania zbioru danych.

0
alex067 19 grudzień 2019, 23:00
Więc „jeden wiersz na kombinację produkt-tydzień” oznacza, że ​​zestaw danych musi być pogrupowany według tygodnia i produktu?
 – 
Rim Sleimi
19 grudzień 2019, 23:03
Tak, pomyśl o tym. jeśli Twoje dane są podzielone według dni, 11/01, 11/02, 11/03, jeśli chcesz agregować dane do segmentu tygodniowego, Twój zbiór danych musi pokazywać coś w rodzaju 11/01, 11/08 itd.
 – 
alex067
19 grudzień 2019, 23:04
Dlatego mój kod powinien być: dataset.groupby(['id', dataset['history_date'].dt.strftime('%W')]) ?
 – 
Rim Sleimi
19 grudzień 2019, 23:09
Nie wiem, nie wysłałeś zestawu danych ani nie zamieściłeś żadnego kodu, więc nie mamy pojęcia.
 – 
alex067
19 grudzień 2019, 23:14
W porządku, powinieneś być w stanie samodzielnie prowadzić badania, teraz, gdy rozumiesz, jaki rodzaj agregacji jest wymagany
 – 
alex067
19 grudzień 2019, 23:19