Przekształcanie danych
Część sekcji Logika i przepływ programu ścieżki Python w Coddy. Lekcja 78 z 78.
Wyzwanie
TrudnyUtwórz funkcję o nazwie transform_dataset, która przetwarza listę rekordów studentów na potrzeby analizy.
Każdy rekord jest słownikiem zawierającym:
student_id: Unikalny identyfikator studentagrades: Lista ocen liczbowychsubjects: Lista przedmiotów, na które uczęszcza student
Twoja funkcja powinna:
- Obliczać średnią ocen każdego studenta
- Uwzględniać tylko studentów, którzy mają wszystkie oceny powyżej 70 (zakwalifikowanych studentów) — do sprawdzenia tego warunku użyj funkcji
all()języka Python - Tworzyć podsumowanie przedmiotów, na które uczęszczają zakwalifikowani studenci, zliczając, ilu zakwalifikowanych studentów uczęszcza na każdy przedmiot
- Zwracać słownik z dwoma kluczami:
qualified_students: Słownik mapujący identyfikatory studentów na ich średnią ocen (zaokrągloną do 2 miejsc po przecinku)subject_summary: Słownik mapujący przedmioty na liczbę zakwalifikowanych studentów, którzy na nie uczęszczają
Uwaga: Funkcja all() w języku Python zwraca True tylko wtedy, gdy wszystkie elementy w iterowalnym obiekcie mają wartość true. Na przykład all(grade > 70 for grade in grades) zwróci True tylko wtedy, gdy każda ocena jest wyższa niż 70.
Przykładowe dane wejściowe:
[
{
"student_id": "S123",
"grades": [88, 92, 85],
"subjects": ["Math", "Science", "History"]
},
{
"student_id": "S124",
"grades": [65, 95, 80],
"subjects": ["Math", "Science", "English"]
},
{
"student_id": "S125",
"grades": [91, 89, 92],
"subjects": ["Math", "Physics", "History"]
}
]Przykładowe dane wyjściowe:
{
'qualified_students': {'S123': 88.33, 'S125': 90.67},
'subject_summary': {'Math': 2, 'Science': 1, 'History': 2, 'Physics': 1}
}Spróbuj swoich sił
def transform_dataset(data):
# Tu wpisz swoje rozwiązanie
# Krok 1: Oblicz średnią ocen każdego ucznia i wybierz uczniów spełniających kryteria
# (uczniów, których wszystkie oceny są wyższe niż 70)
# Krok 2: Utwórz podsumowanie przedmiotów, na które uczęszczają uczniowie spełniający kryteria
# Krok 3: Zwróć końcowy słownik zawierający qualified_students i subject_summary
passWszystkie lekcje w sekcji Logika i przepływ programu
1Odkrywanie zmiennych
StałeWielokrotne przypisania zmiennychZamiana zmiennychZmienne zastępczeZaokrąglanie liczbKonwersja na listę4Aplikacja książki kontaktów
Wyświetl menuDodaj kontakt7Zbiory — część 2
Działania matematyczne — część 1Działania matematyczne — część 2Powtórka — poszukiwanie skarbówPodzbiory i nadzbioryIterowanie po zbiorachPowtórka — śledzenie turnieju10Podstawowe składanie list
SkładniaTworzenie prostych listDodawanie warunkówUżywanie agregacji danychPowtórka – dom listPowtórka – elementy wolności13System zarządzania zapasami
Przegląd projektuDodawanie produktu2Słowniki — część 1
Czym jest słownik?Tworzenie słownikaDostęp do wartościModyfikowanie słownikówPowtórzenie — menedżer przepisów5Zaawansowane podejmowanie decyzji
Operator warunkowySprawdzanie przynależnościSprawdzanie tożsamościBłędy wcięćPowtórka — filtr wakacyjny8Menedżer rekordów uczniów
Przegląd projektuDodawanie ucznia11Zaawansowane funkcje
Zwracanie wielu wartościFunkcje lambda — część 1Funkcje lambda — część 2Wyzwanie podsumowujące — sortowanie z lambdaFunkcje rekurencyjne — część 1Funkcje rekurencyjne — część 2Podsumowanie — suma elementów zagnieżdżonej listy14Funkcje wyższego rzędu
Funkcja mapFunkcja filterPodsumowanie – walidator adresów e-mailPodsumowanie – procesor liczb3Słowniki, część 2
Metody słownikówZagnieżdżone słownikiSprawdzanie kluczyIterowanie po słownikachPowtórzenie — licznik częstotliwości9Zaawansowana agregacja danych
Używanie sumyZnajdowanie minimum i maksimumEfektywne sortowanie danychPowtórka – sortowanie słowników12Podstawowa obsługa błędów
Czym jest obsługa błędów?Blok try i exceptObsługa wielu wyjątkówPodsumowanie – błędy w koszyku zakupowymPoćwicz samodzielnie: Kompilator Python online