
Jak działa pandas to_csv w języku Python? Przykład zastosowania
Pracując z biblioteką pandas w języku Python, często zachodzi potrzeba eksportu danych do pliku CSV. Funkcja to_csv() dostępna w ramach pandas pozwala na szybkie zapisanie danych z obiektu DataFrame do pliku w formacie wartości oddzielonych przecinkami. W tym artykule pokażę, jak korzystać z tej funkcji, jakie ma opcje i jak dostosować jej działanie do własnych potrzeb.
Podstawowe użycie pandas.to_csv()
Aby skorzystać z funkcji to_csv(), najpierw należy zaimportować bibliotekę pandas i stworzyć przykładowy DataFrame. Oto prosty przykład:
import pandas as pd
# Tworzenie przykładowego DataFrame
data = {
'Imię': ['Jan', 'Anna', 'Marek'],
'Wiek': [28, 34, 45],
'Miasto': ['Warszawa', 'Kraków', 'Wrocław']
}
df = pd.DataFrame(data)
# Zapisanie danych do pliku CSV
df.to_csv('dane.csv', index=False)
W tym przypadku zapisujemy dane do pliku dane.csv, a ustawienie index=False powoduje, że indeksy wierszy nie zostają zapisane do pliku.
Opcje dostępne w pandas.to_csv()
Funkcja to_csv() oferuje wiele opcji pozwalających dostosować sposób zapisu danych. Oto najważniejsze z nich:
path_or_buf– ścieżka do pliku lub obiekt buffer, np.sys.stdout(domyślnie: brak, czyli zapis do stringa).sep– separator używany do rozdzielania wartości (domyślnie,, można używać np.;dla plików CSV kompatybilnych z Excel).index– czy ma zapisywać indeksy wierszy (domyślnieTrue).header– czy zapisać nagłówki kolumn (domyślnieTrue).columns– lista kolumn, które mają być zapisane.encoding– kodowanie pliku, np.'utf-8','utf-8-sig'(istotne przy polskich znakach).mode– tryb zapisu, np.'w'dla nadpisywania pliku,'a'dla dopisywania nowych danych.
Zapis do CSV z innym separatorem
Domyślnie dane w pliku CSV są rozdzielane przecinkami, ale czasami lepszym rozwiązaniem jest inny separator, np. średnik (;), szczególnie gdy plik ma być otwierany w Excelu.
df.to_csv('dane_srednik.csv', sep=';', index=False)
Po otwarciu pliku dane_srednik.csv zobaczymy:
| Imię | Wiek | Miasto |
|---|---|---|
| Jan | 28 | Warszawa |
| Anna | 34 | Kraków |
| Marek | 45 | Wrocław |
Eksport bez nagłówków
Czasami może być potrzebny zapis danych bez nagłówków kolumn. Można to zrobić w ten sposób:
df.to_csv('dane_bez_naglowka.csv', index=False, header=False)
Zapis tylko wybranych kolumn
Jeśli chcę zapisać tylko niektóre kolumny, mogę podać ich listę w parametrze columns:
df.to_csv('dane_wybrane_kolumny.csv', columns=['Imię', 'Wiek'], index=False)
Zapis danych z kodowaniem UTF-8
Jeśli plik CSV ma zawierać polskie znaki, warto zadbać o odpowiednie kodowanie:
df.to_csv('dane_utf8.csv', index=False, encoding='utf-8')
Czasami programy (np. Excel) mogą mieć problem z utf-8, dlatego lepiej zapisać z kodowaniem utf-8-sig, które jest szerzej obsługiwane:
df.to_csv('dane_utf8_sig.csv', index=False, encoding='utf-8-sig')
Dopisywanie danych do istniejącego pliku
Jeśli chcę dopisać dane do już istniejącego pliku CSV, mogę użyć trybu 'a' (append). Warto wtedy pamiętać, by nie dodawać ponownie nagłówków:
df.to_csv('dane_append.csv', mode='a', index=False, header=False)
Podsumowanie
Funkcja pandas.to_csv() to wszechstronne narzędzie do eksportu danych z DataFrame do pliku CSV. Pozwala na dostosowanie separatorów, kodowania, obecności nagłówków i wielu innych parametrów. Wybór odpowiednich opcji pozwala na wygodne przetwarzanie danych w Pythonie i łatwą wymianę informacji z innymi aplikacjami.
Inny ciekawy artykuł:
Jak działa pandas merge_ordered w języku Python? Przykład zastosowania
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

