@maciekXDDD: Możesz sobie to ogarnąć od razu SQL z bazy albo zaciągnąć pełne dane do pandas i zrobić df.groupby([pd.Grouper(key='nazwakolumnyzdata', freq='D')]) albo zrobić df.resample('D') jeśli będziesz miał kolumnę z datą jako index dla swojej dataframe.
@przecietnyczlowiek: @ZabiliMiZolwia: @1001001: rewelacja panowie, udało się. to jeszcze szybkie pytanie - w danych, które otrzymałem, niedziela jest osobnym wierszem. natomiast potrzebuje wartości z niedzieli dodać do wartości poniedziałkowej. macie pomysł jak to zrobić?
@maciekXDDD: nie wiem jak wyglądają twoje dane ale na logikę potrzebujesz niedzielę oznaczyć jako poniedziałek i na tym zagregować/zgrupować. W zależności jakiego dialektu sql używasz mozesz uzyc funkcji np. Datename w sql serverze które ci zwróci dzień tygodnia.
Druga opcja to zrobić temp tabele/cte z zagregowanymi danymi dla niedziel. I nastepnie polaczyc ja z twoja tabela glowna w ten sposob ze laczysz po tabelaglowna.dzien - 1 = tabelazniedziela.dzien (czyli dla
natomiast potrzebuje wartości z niedzieli dodać do wartości poniedziałkowej.
@maciekXDDD: Mając już dane w pandas napisałbym sobie funkcję sprawdzającą czy dany dzień jest niedzielą i zamienił ten dzień na poniedziałek, co z resztą powyżej już wskazano.
from datetime import datetime as dt from datetime import timedelta
Pamiętam jak z rok temu jakiś wykopek się ze mną kłócił że włosy po przeszczepie nie wypadają bo są odporne na działanie DHT i że nie trzeba używać blokerów. Włosy Mahonka kilka lat po przeszczepie #famemma #wlosy
mam coś takiego:
1 2020-01-02 00:00:00 -13
2 2020-01-02 01:00:00 22
3 2020-01-02 02:00:00 65
4 2020-01-02 03:00:00 -17
5 2020-01-02 04:00:00 -4
6 2020-01-02 05:00:00 5
i chcę uzyskać nowy dataframe, który będzie wyglądał tak:
1 2020-01-02 00:00:00 -58 <--suma wartości godzinowych z tego dnia
danych jest dużo, na kilkanaście lat. jakieś pomysły jak mogę to zrobić?
#python #sql #pandas
Mniejwięcej tak, tylko index na date zrób.
df.groupby([pd.Grouper(key='nazwakolumnyzdata', freq='D')])
albo zrobićdf.resample('D')
jeśli będziesz miał kolumnę z datą jako index dla swojej dataframe.Druga opcja to zrobić temp tabele/cte z zagregowanymi danymi dla niedziel.
I nastepnie polaczyc ja z twoja tabela glowna w ten sposob ze laczysz po tabelaglowna.dzien - 1 = tabelazniedziela.dzien (czyli dla
@maciekXDDD: Mając już dane w pandas napisałbym sobie funkcję sprawdzającą czy dany dzień jest niedzielą i zamienił ten dzień na poniedziałek, co z resztą powyżej już wskazano.
from datetime import datetime as dt
from datetime import timedelta
tutaj inny - calkiem elegancki - sposób: https://pastebin.com/yVVTcuUM
from io import StringIO