Polars read_csv(): szybkie wczytywanie danych CSV w Pythonie
Odkryj, jak Polars read_csv() pomaga efektywnie wczytywać dane CSV w Pythonie, w tym obsługiwać duże zbiory, definiować schematy i optymalizować wydajność.
Jeśli regularnie używasz Pythona do analizy danych, tak jak ja, szybko zauważysz, że wczytywanie plików CSV to jedno z najczęstszych zadań. Jednak wraz ze wzrostem zbiorów danych ta metoda może stać się wolna lub pamięciożerna.
Polars to szybka, nowoczesna biblioteka DataFrame dla Pythona, zaprojektowana jako wysokowydajna alternatywa dla Pandas. Radzi sobie z dużymi zbiorami danych znacznie płynniej niż tradycyjne narzędzia, ponieważ jest zbudowana z naciskiem na szybkość i niskie zużycie pamięci.
Kluczowa funkcja Polars pl.read_csv() zapewnia prosty sposób wczytywania plików CSV do DataFrame, z wbudowanymi opcjami kontroli parsowania, typów danych i zużycia pamięci.
W tym przewodniku pokażę ci, jak czytać pliki CSV, kontrolować parsowanie i obsługiwać duże zbiory danych za pomocą funkcji Polars pl.read_csv(). Jeśli dopiero zaczynasz, sprawdź nasz kurs Introduction to Polars, aby nauczyć się manipulować danymi i wyciągać wnioski z użyciem Polars.
Podstawowe użycie pl.read_csv()
Zanim przejdziemy dalej, zerknij na nasz poradnik Python Polars, aby dowiedzieć się, jak przygotować środowisko.
Sprawdźmy teraz, jak działa funkcja pl.read_csv():
# import the moduleimport polars as pl
# Load CSV into a Polars DataFrame
fuel_data = pl.read_csv("Fuel_Consumption_2000-2022.csv")# Preview first few rowsprint(fuel_data.head())Obsługiwane przez
W powyższym przykładzie Polars czyta plik i ładuje go do DataFrame. Funkcja zwraca Polars DataFrame, czyli tabelaryczną strukturę danych, podobną do tego, co otrzymasz w pandas.
Domyślnie pl.read_csv():
Zakłada, że pierwszy wiersz zawiera nazwy kolumn (has_header=True)
Automatycznie wnioskuje typy danych kolumn
Używa przecinka (,) jako separatora
Wczytuje cały plik do pamięci
Najczęstsze parametry w pl.read_csv()
Gdy już wiesz, jak pl.read_csv() ładuje dane, zobaczmy, jak dzięki poniższym parametrom możesz dostosować sposób parsowania danych przez Polars.
Ścieżka pliku i źródło
Polars pozwala wczytywać dane z różnych źródeł. Możesz przekazać lokalną ścieżkę jako string, obiekt Pathlib lub nawet URL. Na przykład poniższy kod czyta duży plik csv z sieci zawierający PKB różnych krajów w różnych latach.
# Reading from a URL
url ="https://raw.githubusercontent.com/datasets/gdp/master/data/gdp.csv"
gdp_data = pl.read_csv(url)Obsługiwane przez
Separatory
Nie wszystkie pliki CSV używają przecinków. Możesz użyć argumentu separator, aby obsłużyć tabulatory, średniki, pionowe kreski lub inne znaki. Poniższy przykład pokazuje, jak określić separatory podczas czytania plików
# Reading a Semicolon-separated file
sales_data = pl.read_csv("2024_sales.csv", separator=";")# Reading a Tab-separated file (TSV)
orders_data = pl.read_csv("all_orders.tsv", separator="\t")Obsługiwane przez
Obsługa nagłówków
Jak widzieliśmy wcześniej, Polars zakłada, że pierwszy wiersz danych zawiera nazwy kolumn. Jeśli twój plik nie ma wiersza nagłówka, użyj parametru has_header=False, jak poniżej. Polars automatycznie przypisze nazwy kolumn takie jak column_1, column_2, column_3 itd.
# Load file without a header
orders_data = pl.read_csv("all_orders.csv", has_header=False)Obsługiwane przez
Możesz też zmienić nazwy kolumn, podając konkretne nazwy. Na przykład:
# Providing specific column names
sales_data = pl.read_csv("sales_April.csv", new_columns=["OrderDate","OrderNumber","ProductKey","SalespersonKey","Salesperson"])Obsługiwane przez
Kodowanie
Różne pliki CSV mogą używać różnych kodowań tekstu. Jeśli trafiasz na dziwne znaki lub błędy, określ kodowanie:
# Load CSV into a Polars DataFrame
fuel_data = pl.read_csv("Fuel_Consumption_2000-2022.csv", encoding="utf8")Obsługiwane przez
Inne popularne opcje kodowania to ”latin1” i ”utf8-lossy”, które odpowiednio obsługują nieprawidłowe znaki.
Jak wybierać kolumny podczas czytania CSV w Polars
Pracując z dużymi plikami CSV, często nie potrzebujesz każdej kolumny. Polars pozwala wczytać tylko te kolumny, których potrzebujesz, używając parametru columns.
# Load only specific columns
fuel_data = pl.read_csv("Fuel_Consumption_2000-2022.csv",
columns=["YEAR","MAKE","MODEL"])Obsługiwane przez
Wybranie potrzebnych kolumn już na etapie wczytywania pliku zmniejsza zużycie pamięci, bo nie ładujesz zbędnych danych. Ta metoda przyspiesza też odczyt pliku i poprawia wydajność całego pipeline’u.
Jak obsługiwać typy danych (schemat) w CSV Polars
Polars to biblioteka o silnym typowaniu, co oznacza, że każda kolumna musi mieć spójny typ danych, np. same liczby całkowite lub same stringi.
Automatyczne wnioskowanie typów
Domyślnie Polars analizuje twoje dane i automatycznie określa typy kolumn. Ta metoda działa dobrze w większości przypadków, ale czasem może błędnie zinterpretować kolumny, np. traktując identyfikatory jako liczby całkowite zamiast stringów.
Ręczne określanie schematu
Gdy zależy ci na spójności w DataFrame, powinieneś ręcznie określić schemat danych. Zapewnia to zgodność między wieloma plikami i pomaga uniknąć błędów typów na dalszych etapach przetwarzania.
W większości przypadków użyj schema_overrides, aby wskazać typ danych dla konkretnych kolumn, pozostawiając Polarsowi wnioskowanie pozostałych kolumn
import polars as pl
# Manually overriding specific data types
empl_data = pl.read_csv("all_employees.csv",
schema_overrides={"id": pl.Int64,"name": pl.String,"age": pl.Int64,"salary": pl.Float64
})Obsługiwane przez
Albo użyj schema, aby zdefiniować całą strukturę DataFrame.
# Manually define the full schema
empl_data = pl.read_csv("all_employees.csv",
schema={"id": pl.Int64,"name": pl.String,"age": pl.Int64,"salary": pl.Float64
})Obsługiwane przez
Jak obsługiwać brakujące wartości w CSV Polars
Domyślnie Polars automatycznie wykrywa brakujące wartości i reprezentuje je jako null. Czasami brakujące wartości są reprezentowane przez konkretne stringi, takie jak ”NA”, ”N/A” lub ”missing”. Możesz je zdefiniować za pomocą null_values, aby traktować je jako null.
# Treating "N/A" and "EMPTY" as nulls
survey_data = pl.read_csv("survey_results.csv",
null_values=["N/A","EMPTY","null"])Obsługiwane przez
Prawidłowa obsługa braków zapewnia spójne typy danych i zapobiega błędnym obliczeniom, ograniczając błędy podczas analizy i modelowania.
Czytanie dużych plików CSV w Polars
Pracując z dużymi zbiorami danych, które przekraczają dostępną pamięć RAM, Polars naprawdę błyszczy, przetwarzając dane bez jednoczesnego ładowania całego pliku.
Leniwe wczytywanie z scan_csv()
Zamiast natychmiast wczytywać dane do pamięci jak read_csv(), Polars oferuje leniwą alternatywę, scan_csv(), która buduje zoptymalizowany plan zapytania i wykonuje tylko potrzebne operacje.
W poniższym przykładzie pl.scan_csv skanuje plik CSV bez jego wczytywania, buduje zapytanie, aby pobrać tylko kolumny „YEAR”, „MAKE” i „MODEL” tam, gdzie marka auta to „ACURA”, a następnie wykonuje to zapytanie. Dzięki temu do pamięci trafi jedynie przefiltrowany wycinek danych, a nie cały plik.
# Lazily reference the file (no data loaded yet)
fuel_consumption = pl.scan_csv("Fuel_Consumption_2000-2022.csv")
fuel_consumption_filtered = fuel_consumption.select(["YEAR","MAKE","MODEL"]).filter(pl.col("MAKE")=="ACURA")# Execute the query and load only the required data
fuel_consumption_acura = fuel_consumption_filtered.collect()Obsługiwane przez
Polecam używać scan_csv() gdy:
Pracujesz z dużymi plikami, które nie mieszczą się wygodnie w pamięci
Stosujesz wiele transformacji, takich jak filtrowanie, wybór i agregacje
Chcesz optymalizacji zapytania przed wykonaniem
Streaming i efektywność pamięciowa
Polars pozwala też na strumieniowe przetwarzanie danych w kawałkach, utrzymując stały szczytowy użytek pamięci niezależnie od rozmiaru pliku.
Dla dużych plików CSV zacznij od scan_csv(), aby utworzyć leniwe zapytanie. Plik nie jest w pełni ładowany w momencie wywołania scan_csv().
# Read data in chunks
fuel_consumption = pl.scan_csv("Fuel_Consumption_2000-2022.csv",
low_memory=True)Obsługiwane przez
Ponieważ powyższa metoda wciąż używa read_csv, najlepszym podejściem jest połączenie leniwego wykonania ze streamingiem.
W poniższym przykładzie Polars przetwarza plik potokowo, wiersz po wierszu w partiach, przechowując w danej chwili w pamięci tylko przefiltrowane wiersze (gdzie “CYLINDERS” > 3).
# Lazily reference the file (no data loaded yet)
fuel_consumption = pl.scan_csv("Fuel_Consumption_2000-2022.csv")
result = fuel_consumption.filter(pl.col("CYLINDERS")>3)# Stream execution instead of loading everything at once
fuel_consumption_high = result.collect(engine="streaming")Obsługiwane przez
Przewaga wydajności nad Pandas
W porównaniu z pandas, Polars często wypada lepiej przy odczycie i przetwarzaniu CSV, co zobaczymy w następnej sekcji.
Polars read_csv vs Pandas read_csv
Poniższa tabela podsumowuje różnice między Polars i Pandas podczas czytania CSV w Pythonie.
Aspekt
Polars
Pandas
Szybkość
Szybszy dzięki wielowątkowości i zoptymalizowanemu parsowaniu
Wolniejszy przy dużych plikach (głównie jednowątkowy)
Duże zbiory danych, krytyczne pod kątem wydajności workflowy
Mniejsze zbiory danych, szybka analiza
Polecam przeczytanie naszego artykułu o różnicach między Pandas a Polars, aby określić, które narzędzie najlepiej pasuje do twoich potrzeb analitycznych.
Czytanie CSV z różnych źródeł
Jak widzieliśmy wcześniej, możesz używać Polars do czytania plików csv z różnych źródeł. W powyższych przykładach pokazałem, jak czytać csv z plików lokalnych i z URL-i.
Dodatkowo Polars może automatycznie obsługiwać skompresowane pliki CSV. Na przykład poniższy kod czyta dane z pliku .gzip.
# Read gzip-compressed CSV
census_data = pl.read_csv("2018_census.csv.gz")Obsługiwane przez
Typowe błędy i rozwiązywanie problemów
Nawet przy tak wydajnym silniku jak Polars wciąż możesz napotkać problemy, zwłaszcza podczas czytania pliku csv. Oto niektóre z częstych problemów, na które trafiałem, i jak je rozwiązać.
Błędy kodowania: Możesz zobaczyć błąd UnicodeDecodeError, co oznacza, że plik nie używa kodowania UTF-8 — to częsty problem w starszych plikach lub CSV eksportowanych z niektórych wersji Excela. Aby to naprawić, ustaw odpowiednie kodowanie albo użyj “utf8-lossy”, jeśli plik zawiera niespójne lub zepsute znaki.
Problemy z separatorem: Jeśli DataFrame się ładuje, ale wszystkie dane lądują w jednej kolumnie, Polars nie rozpoznał separatora. Aby to rozwiązać, jawnie ustaw właściwy separator za pomocą argumentu separator, np. średnik (;), tabulator (\t) lub pionowa kreska (|).
Nieprawidłowe typy danych: Czasami Polars może błędnie wywnioskować typy kolumn, np. odczytać numeryczne ID jako stringi lub napotkać błędy parsowania. W takiej sytuacji użyj schema_overrides, aby wskazać typ danych dla konkretnych kolumn. Jeśli chcesz zdefiniować typy dla każdej kolumny, użyj schema. Możesz też zwiększyć infer_schema_length, aby Polars przeanalizował więcej wierszy przed wnioskowaniem schematu.
Problemy z pamięcią przy dużych plikach: Jeśli proces Pythona się wyłącza podczas ładowania dużego pliku, oznacza to, że wyczerpałeś RAM. Aby to naprawić, przełącz się z read_csv() na scan_csv() dla leniwego ładowania, by zmniejszyć zużycie pamięci i poprawić wydajność. Możesz też wczytać mniej kolumn zbioru danych albo użyć wykonania strumieniowego, aby ładować dane partiami.
Podsumowanie
Funkcja read_csv() w Polars jest prosta w użyciu, ale wystarczająco potężna do zadań produkcyjnych. Moim zdaniem Polars ma wyraźną przewagę przy pracy z rosnącymi zbiorami danych.
Jako kolejny krok zajrzyj na nasz blog o silniku GPU w Polars, aby dowiedzieć się więcej o jego zastosowaniach. Jeśli masz ochotę na praktykę, wypróbuj nasz Super Bowl Analytics with Polars code-along, aby rozwiązywać realne problemy analityczne, stosować obliczenia i wykorzystać podstawowe techniki ML w analityce sportowej.
FAQs
Jaka jest różnica między read_csv() a scan_csv() w Polars?⌄
read_csv() ładuje dane zachłannie do pamięci, a scan_csv() używa wykonania leniwego i przetwarza dane dopiero po wywołaniu .collect().
Kiedy używać scan_csv() zamiast read_csv()?⌄
Używaj scan_csv() dla dużych zbiorów danych lub przy łączeniu wielu transformacji, ponieważ optymalizuje wykonanie i zmniejsza zużycie pamięci.
Czy Polars może czytać tylko wybrane kolumny z pliku CSV?⌄
Tak, użyj parametru columns=[...] w read_csv() lub wybierz kolumny w leniwym zapytaniu z scan_csv().
Jak obsługiwać brakujące wartości w plikach CSV w Polars?⌄
Polars domyślnie traktuje puste wartości jako null, a własne znaczniki braków możesz zdefiniować parametrem null_values=.
Czy Polars obsługuje skompresowane pliki CSV?⌄
Tak, obsługuje skompresowane formaty, takie jak .gz i .zip, bez ręcznego rozpakowywania.
Jeśli regularnie używasz Pythona do analizy danych, tak jak ja, szybko zauważysz, że wczytywanie plików CSV to jedno z najczęstszych zadań. Jednak wraz ze wzrostem zbiorów danych ta metoda może stać się wolna lub pamięciożerna.
Polars to szybka, nowoczesna biblioteka DataFrame dla Pythona, zaprojektowana jako wysokowydajna alternatywa dla Pandas. Radzi sobie z dużymi zbiorami danych znacznie płynniej niż tradycyjne narzędzia, ponieważ jest zbudowana z naciskiem na szybkość i niskie zużycie pamięci.
Kluczowa funkcja Polars
pl.read_csv()zapewnia prosty sposób wczytywania plików CSV do DataFrame, z wbudowanymi opcjami kontroli parsowania, typów danych i zużycia pamięci.W tym przewodniku pokażę ci, jak czytać pliki CSV, kontrolować parsowanie i obsługiwać duże zbiory danych za pomocą funkcji Polars
pl.read_csv(). Jeśli dopiero zaczynasz, sprawdź nasz kurs Introduction to Polars, aby nauczyć się manipulować danymi i wyciągać wnioski z użyciem Polars.Podstawowe użycie pl.read_csv()
Zanim przejdziemy dalej, zerknij na nasz poradnik Python Polars, aby dowiedzieć się, jak przygotować środowisko.
Sprawdźmy teraz, jak działa funkcja
pl.read_csv():W powyższym przykładzie Polars czyta plik i ładuje go do DataFrame. Funkcja zwraca Polars DataFrame, czyli tabelaryczną strukturę danych, podobną do tego, co otrzymasz w pandas.
Domyślnie
pl.read_csv():Zakłada, że pierwszy wiersz zawiera nazwy kolumn (
has_header=True)Automatycznie wnioskuje typy danych kolumn
Używa przecinka (
,) jako separatoraWczytuje cały plik do pamięci
Najczęstsze parametry w pl.read_csv()
Gdy już wiesz, jak
pl.read_csv()ładuje dane, zobaczmy, jak dzięki poniższym parametrom możesz dostosować sposób parsowania danych przez Polars.Ścieżka pliku i źródło
Polars pozwala wczytywać dane z różnych źródeł. Możesz przekazać lokalną ścieżkę jako string, obiekt
Pathliblub nawet URL. Na przykład poniższy kod czyta duży plik csv z sieci zawierający PKB różnych krajów w różnych latach.Separatory
Nie wszystkie pliki CSV używają przecinków. Możesz użyć argumentu
separator, aby obsłużyć tabulatory, średniki, pionowe kreski lub inne znaki. Poniższy przykład pokazuje, jak określić separatory podczas czytania plikówObsługa nagłówków
Jak widzieliśmy wcześniej, Polars zakłada, że pierwszy wiersz danych zawiera nazwy kolumn. Jeśli twój plik nie ma wiersza nagłówka, użyj parametru
has_header=False, jak poniżej. Polars automatycznie przypisze nazwy kolumn takie jakcolumn_1,column_2,column_3itd.Możesz też zmienić nazwy kolumn, podając konkretne nazwy. Na przykład:
Kodowanie
Różne pliki CSV mogą używać różnych kodowań tekstu. Jeśli trafiasz na dziwne znaki lub błędy, określ kodowanie:
Inne popularne opcje kodowania to
”latin1”i”utf8-lossy”, które odpowiednio obsługują nieprawidłowe znaki.Jak wybierać kolumny podczas czytania CSV w Polars
Pracując z dużymi plikami CSV, często nie potrzebujesz każdej kolumny. Polars pozwala wczytać tylko te kolumny, których potrzebujesz, używając parametru
columns.Wybranie potrzebnych kolumn już na etapie wczytywania pliku zmniejsza zużycie pamięci, bo nie ładujesz zbędnych danych. Ta metoda przyspiesza też odczyt pliku i poprawia wydajność całego pipeline’u.
Jak obsługiwać typy danych (schemat) w CSV Polars
Polars to biblioteka o silnym typowaniu, co oznacza, że każda kolumna musi mieć spójny typ danych, np. same liczby całkowite lub same stringi.
Automatyczne wnioskowanie typów
Domyślnie Polars analizuje twoje dane i automatycznie określa typy kolumn. Ta metoda działa dobrze w większości przypadków, ale czasem może błędnie zinterpretować kolumny, np. traktując identyfikatory jako liczby całkowite zamiast stringów.
Ręczne określanie schematu
Gdy zależy ci na spójności w DataFrame, powinieneś ręcznie określić schemat danych. Zapewnia to zgodność między wieloma plikami i pomaga uniknąć błędów typów na dalszych etapach przetwarzania.
W większości przypadków użyj
schema_overrides, aby wskazać typ danych dla konkretnych kolumn, pozostawiając Polarsowi wnioskowanie pozostałych kolumnAlbo użyj
schema, aby zdefiniować całą strukturę DataFrame.Jak obsługiwać brakujące wartości w CSV Polars
Domyślnie Polars automatycznie wykrywa brakujące wartości i reprezentuje je jako
null. Czasami brakujące wartości są reprezentowane przez konkretne stringi, takie jak”NA”,”N/A”lub”missing”. Możesz je zdefiniować za pomocąnull_values, aby traktować je jakonull.Prawidłowa obsługa braków zapewnia spójne typy danych i zapobiega błędnym obliczeniom, ograniczając błędy podczas analizy i modelowania.
Czytanie dużych plików CSV w Polars
Pracując z dużymi zbiorami danych, które przekraczają dostępną pamięć RAM, Polars naprawdę błyszczy, przetwarzając dane bez jednoczesnego ładowania całego pliku.
Leniwe wczytywanie z scan_csv()
Zamiast natychmiast wczytywać dane do pamięci jak
read_csv(), Polars oferuje leniwą alternatywę,scan_csv(), która buduje zoptymalizowany plan zapytania i wykonuje tylko potrzebne operacje.W poniższym przykładzie
pl.scan_csvskanuje plik CSV bez jego wczytywania, buduje zapytanie, aby pobrać tylko kolumny „YEAR”, „MAKE” i „MODEL” tam, gdzie marka auta to „ACURA”, a następnie wykonuje to zapytanie. Dzięki temu do pamięci trafi jedynie przefiltrowany wycinek danych, a nie cały plik.Polecam używać
scan_csv()gdy:Streaming i efektywność pamięciowa
Polars pozwala też na strumieniowe przetwarzanie danych w kawałkach, utrzymując stały szczytowy użytek pamięci niezależnie od rozmiaru pliku.
Dla dużych plików CSV zacznij od
scan_csv(), aby utworzyć leniwe zapytanie. Plik nie jest w pełni ładowany w momencie wywołaniascan_csv().Ponieważ powyższa metoda wciąż używa
read_csv, najlepszym podejściem jest połączenie leniwego wykonania ze streamingiem.W poniższym przykładzie Polars przetwarza plik potokowo, wiersz po wierszu w partiach, przechowując w danej chwili w pamięci tylko przefiltrowane wiersze (gdzie
“CYLINDERS” > 3).Przewaga wydajności nad Pandas
W porównaniu z pandas, Polars często wypada lepiej przy odczycie i przetwarzaniu CSV, co zobaczymy w następnej sekcji.
Polars read_csv vs Pandas read_csv
Poniższa tabela podsumowuje różnice między Polars i Pandas podczas czytania CSV w Pythonie.
Aspekt
Polars
Pandas
Szybkość
Szybszy dzięki wielowątkowości i zoptymalizowanemu parsowaniu
Wolniejszy przy dużych plikach (głównie jednowątkowy)
Zużycie pamięci
Niższy narzut; wspiera tryb leniwy + streaming
Ładuje cały zbiór danych zachłannie do pamięci
Składnia
pl.read_csv(“data.csv”)pd.read_csv(“data.csv”)Model wykonania
Obsługuje wykonanie leniwe (
scan_csv)Tylko wykonanie zachłanne (natychmiastowe)
Optymalizacja
Wbudowana optymalizacja zapytań (projekcja, filtrowanie)
Ograniczona automatyczna optymalizacja
Najlepszy przypadek użycia
Duże zbiory danych, krytyczne pod kątem wydajności workflowy
Mniejsze zbiory danych, szybka analiza
Polecam przeczytanie naszego artykułu o różnicach między Pandas a Polars, aby określić, które narzędzie najlepiej pasuje do twoich potrzeb analitycznych.
Czytanie CSV z różnych źródeł
Jak widzieliśmy wcześniej, możesz używać Polars do czytania plików csv z różnych źródeł. W powyższych przykładach pokazałem, jak czytać csv z plików lokalnych i z URL-i.
Dodatkowo Polars może automatycznie obsługiwać skompresowane pliki CSV. Na przykład poniższy kod czyta dane z pliku
.gzip.Typowe błędy i rozwiązywanie problemów
Nawet przy tak wydajnym silniku jak Polars wciąż możesz napotkać problemy, zwłaszcza podczas czytania pliku csv. Oto niektóre z częstych problemów, na które trafiałem, i jak je rozwiązać.
Błędy kodowania: Możesz zobaczyć błąd
UnicodeDecodeError, co oznacza, że plik nie używa kodowania UTF-8 — to częsty problem w starszych plikach lub CSV eksportowanych z niektórych wersji Excela. Aby to naprawić, ustaw odpowiednie kodowanie albo użyj“utf8-lossy”, jeśli plik zawiera niespójne lub zepsute znaki.Problemy z separatorem: Jeśli DataFrame się ładuje, ale wszystkie dane lądują w jednej kolumnie, Polars nie rozpoznał separatora. Aby to rozwiązać, jawnie ustaw właściwy separator za pomocą argumentu
separator, np. średnik (;), tabulator (\t) lub pionowa kreska (|).Nieprawidłowe typy danych: Czasami Polars może błędnie wywnioskować typy kolumn, np. odczytać numeryczne ID jako stringi lub napotkać błędy parsowania. W takiej sytuacji użyj
schema_overrides, aby wskazać typ danych dla konkretnych kolumn. Jeśli chcesz zdefiniować typy dla każdej kolumny, użyjschema. Możesz też zwiększyćinfer_schema_length, aby Polars przeanalizował więcej wierszy przed wnioskowaniem schematu.Problemy z pamięcią przy dużych plikach: Jeśli proces Pythona się wyłącza podczas ładowania dużego pliku, oznacza to, że wyczerpałeś RAM. Aby to naprawić, przełącz się z
read_csv()nascan_csv()dla leniwego ładowania, by zmniejszyć zużycie pamięci i poprawić wydajność. Możesz też wczytać mniej kolumn zbioru danych albo użyć wykonania strumieniowego, aby ładować dane partiami.Podsumowanie
Funkcja
read_csv()w Polars jest prosta w użyciu, ale wystarczająco potężna do zadań produkcyjnych. Moim zdaniem Polars ma wyraźną przewagę przy pracy z rosnącymi zbiorami danych.Jako kolejny krok zajrzyj na nasz blog o silniku GPU w Polars, aby dowiedzieć się więcej o jego zastosowaniach. Jeśli masz ochotę na praktykę, wypróbuj nasz Super Bowl Analytics with Polars code-along, aby rozwiązywać realne problemy analityczne, stosować obliczenia i wykorzystać podstawowe techniki ML w analityce sportowej.