Menu
Coddy logo textTech

Samochód do kupienia

Lekcja 19 z 19 w kursie Analiza danych z pandas w Coddy.

Przy użyciu .sort_values zwraca ona ramkę danych, w której column_name zostaje zamieniona na indeks:

res = df.sort_values(by='column_name', ascending=True)

Indeks jest jak adres — dzięki niemu można uzyskać dostęp do dowolnego punktu danych w ramce danych lub serii.

Gdy kolumna zostaje zamieniona na indeks, nie można już uzyskać do niej dostępu w poznany przez nas sposób:

res["column_name"]

To niemożliwe.

Aby ponownie zamienić indeks na zwykłą kolumnę, napisz: .reset_index:

res = df.sort_values(by='column_name', ascending=True).reset_index()

Możesz też podzielić to na dwa kroki:

res = df.sort_values(by='column_name', ascending=True)
res = res.reset_index()
challenge icon

Wyzwanie

Średni

Pliki CSV car_raw_stats.csv i car_features.csv zawierają informacje o samochodach na sprzedaż.

Oto pierwsze 5 wierszy pliku car_raw_stats.csv:

car_id,brand,price,popularity,year
1,ram,12584.93337,0.962070375,2008
2,mazda,15123.47674,0.356163012,2012
3,kia,15861.89672,0.110720597,2006
4,renault,12631.39906,0.153823182,2016

Oto pierwsze 5 wierszy pliku car_features.csv:

car_id,sits,has_phone_charger,is_comfortable
1,4,,1
2,4,,1
3,4,1,1
4,2,1,

Musimy znaleźć potencjalne samochody do kupienia.

  • Każda brakująca wartość jest traktowana jako 0.
  • Oblicz średnią dla każdej marki i weź pod uwagę tylko 7 najlepszych marek. Odfiltruj wszystkie samochody tych marek.
  • Szukamy niedrogiego samochodu — cena musi być niższa niż 20000, a rok produkcji musi być późniejszy niż 2005.
  • Samochód powinien mieć 4 siedzenia, nie potrzebujemy ładowarki, ale musi być wygodny. 
  • Posortuj samochody rosnąco według identyfikatora samochodu.

Zapisz wynik w df

Spróbuj swoich sił

# pandas jako pd jest już zaimportowany
df_feat = pd.read_csv("./car_features.csv")
df_stat = pd.read_csv("./car_raw_stats.csv")
# Napisz swój kod poniżej

Wszystkie lekcje w sekcji Analiza danych z pandas

Poćwicz samodzielnie: Kompilator Python online