Wpis z mikrobloga

Mirki, mam pytanie które wydaje się dość podstawowe ale naprawdę nie mogę nigdzie znaleźć satysfakcjonującej odpowiedzi.

Powiedzmy, że chcę generować dane finansowe dotyczące spółek giełdowych. Ponieważ cena akcji podawana jest codziennie a raporty dotyczące zadłużenia, zysków, czy wartości księgowej rzadziej (na przykład kwartalnie), wydaje mi się że optymalne jest rozdzielenie tych dwóch danych na dwie różne tabele:
- OHLC za każdy dzień
- Snapshot pokazujący dane finansowe z raportu za dany okres (np. pierwszy kwartał 2021)

Czy jest jakaś mądra - istniejąca już w pandas - metoda pozwalająca na zgrabne łączenie tych danych w jednym dataframe, czy muszę użyć apply() i napisać swoją (mniej wydajną) funkcję?

#datascience #pandas #python
  • 8
@Mr_NiceGuy generalnie używam pysparka ale obstawiam, że na 99% w pandasy też będziesz mieć .join()
Chyba, że nie to chcesz osiągnąć?

Inna sprawa, że jeśli potrzebujesz jakichś wskaźników do wyliczenia to co powstrzymuje Cię, żeby pracować na 2 różnych obiektach (dataframe)?
Czy jest jakaś mądra - istniejąca już w pandas - metoda pozwalająca na zgrabne łączenie tych danych w jednym dataframe


@Mr_NiceGuy: Odpowiedź brzmi - prawdopodobnie tak. Natomiast dopóki nie napiszesz konkretnie, co chcesz łączyć i na jakiej logice, prawdziwej odpowiedzi nie da się udzielić. Sprawdź df.merge i napisz czy spełnia twoje potrzeby, a jeżeli nie, to już opisz konkretnie (jakie masz kolumny dimensions/measures, co ma być kluczem itd.)
@inny_89: @IamHater:
Mam tabelę zawierającą ceny akcji i żeby nie duplikować wszystkich danych finansowych z raportu - osobną tabelę z danymi finansowymi. Celem jest skonstruowanie wykresu z wybranym wskaźnikiem tak, aby dla każdej daty brana była wartość z danego kwartału.

Można by w sumie to skleić obliczając sobie datę pierwszego dnia danego kwartału tylko zastanawiam się czy nie ma lepszego i bardziej optymalnego rozwiązania już istniejącego (albo w ogóle lepszej
MrNiceGuy - @inny89: @IamHater: 
Mam tabelę zawierającą ceny akcji i żeby nie duplik...

źródło: comment_1612118055fc1oJmvWjxvzqmJjNT1pQ2.jpg

Pobierz
@Mr_NiceGuy:

df1.merge(df2, how='left', lefton='Date', righton='FROM').ffill()


No i ta ostatnia kolumna na koniec. Zobacz w ten sposób. btw. Underscore psuje formatowanie, tam jest left-on i right-on, _ zamiast -. Format kolumn po których mergujesz musi się zgadzać ofc, ale to pandasy powinny sparsować automatycznie do datetime AFAIK.