Untitled
unknown
python
a year ago
2.9 kB
6
Indexable
import plotly.express as px import openpyxl import pandas if __name__ == '__main__': filename = 'data/life_expectancy_all.xlsx' workbook = openpyxl.load_workbook(filename) # Wybierz arkusz (możesz użyć indeksu arkusza lub nazwy) sheet_name = 'Sheet 1' # Podaj nazwę arkusza sheet = workbook[sheet_name] # Rząd z datami w pliku excela date_row = 10 # Reprezentacja liczba na konkretne kolumny w excelu # (pomocniczny słowni do wczytywania wszystkich danych odnośnie jednego kraju) columns = {1: 'B', 2: 'C', 3: 'D', 4: 'E', 5: 'F', 6: 'G', 7: 'H', 8: 'I', 9: 'J', 10: 'K'} # Rząd wybranego kraju (plik excela) dla którego chcemy wyświetlić wykres country_row = 14 # Słownik główny, który wiąże kraj z datami i wartościami odpowiednimi dla tych dat temp_dict = {} # Pobranie odpowiedniej wybranego kraju (patrz linijka 22) country_cell = sheet[f'A{country_row}'] # Pobranie wartości z wybranej komórki country_value = country_cell.value # Tutaj zapisujemy jako klucz do naszego słownika wybrany przez nas kraj. temp_dict[country_value] = [] # Lista pomocniczna przechowująca pojedyncze słowniki (pary: data -> wartość) temp_list = [] # Pętla która wykonuje się tyle razy ile mamy kolumn z danymi (czyli 10 - plik excela) for i in range(1, 11): # Tymczasowy słownik przechowujący parę (data -> wartość) temp_dict2 = {} # Pobranie komórki odpowiadającej za dany rok i komórki odpowiadający wartości za dany rok date_column = sheet[f'{columns[i]}{date_row}'] avg_age = sheet[f'{columns[i]}{country_row}'] # Pobranie data i wartości średniej długości życia dla danej daty data_value = date_column.value avg_agg_value = avg_age.value # Dodanie pobranych danych do struktur tymczasowych temp_dict2[data_value] = avg_agg_value temp_list.append(temp_dict2) # Zapisanie pod kluczem (wybranym krajem) listy słowników z datami i ich wartościami temp_dict[country_value] = temp_list # Zamknij plik Excela workbook.close() # Przygotowujemy dane do rysowania wykresu: # wartości x -> daty # wartości y -> wartości średniej długości życia przypisane do danej daty x_values = [] y_values = [] for key, value in temp_dict.items(): for v in value: for k, v2 in v.items(): # Dodawanie elementów na podstawie przygotowanej wcześniej struktury x_values.append(k) y_values.append(v2) # Tworzenie wykresu słupkowego fig = px.bar(x=x_values, y=y_values, title=f'{country_value}') # Wyświetlanie wykresu fig.show()
Editor is loading...
Leave a Comment