to w tym structcie z jakiegoś powodu jest wbudowana funkcja sort
zamiast mieć w bibliotece pandas funkcję sort która bierze df i warunki sortowania i zwraca posortowany df
nie rozumiem tego tak bardzo
w sensie że zamiast df = df.sort_values(by='x') powinno być df = pd.sort(df, by='x') : z biblioteki pandas bierzemy funkcję sortującą która działa na df z parametrami dalej, zamiast dataframe'u magicznie się sortującego z samego swojego istnienia (?)
lub np. w pythonie jest logiczne list = sorted(list) vs. jakieś dzikie list = list.sort()
na dodatek to jest strasznie nieintuicyjnie gdy próbujemy składać funkcje, np rozważmy coś takiego:
df.sort_values().filter().plot()
trudno mi jest zrozumieć co tu się dokładnie dzieje, porównajmy to z bardziej logicznym, matematycznym wyrażeniem tego:
plot(filter(sort_values))(df) gdzie ciąg przyczynowo-skutkowy jest jasny, widoczny i zgodny z konwencją (funkcje składamy od prawej do lewej)
alternatywnie można by wprowadzić
dla mnie to wygląda tak jakby ktoś się obraził na konwencję składania funkcji i wymyślił całkowicie nowy sposób byle tylko uniknąć składania funkcji xD
ta konwencja prowadzi do tego że jakikolwiek kod w Pythonie jest dla mnie niezrozumiały mimo że ogarniam mniej-więcej co się dzieje w nawet trochę bardziej skomplikowanych programach w C
Chodzi mi głównie o to, że zamiast jasnego podziału na zmienne (które same z siebie się nie zmieniają bez jasnych instrukcji programu) i działające na nich funkcje, robimy miszmasz że wszystko może mieć wbudowane w siebie funkcje.
To tak jakby zamiast 2+2 (co jest uproszczeniem zapisu suma(2,2) gdzie suma to funkcja z R^2 w R dodająca argumenty) pisać 2.dodaj(2)
ps jeśli nie zauważyliście jeszcze to nie jestem programistą, ani nie mówię że potrafię programować - więc oczekuję odpowiedzi na moim poziomie a nie elektrody
#programowanie bardziej #metaprogramowanie