Tworzenie DataFrame na podstawie plików takich jak CSV, plików excel czy też JSON jest powszechną operacją wykonywaną w analizie danych. Pandas posiada bardzo przemyślane i bogate funkcje, które służą do tego celu. Takie jak read_csv. Poniżej zaznajomimy się z podstawami ich użycia. Zaczynajmy!
Ogólne zasady obsługi plików w Pandas
W Pandas mamy do dyspozycji szereg funkcji które umożliwiają nam łatwy odczyt z plików. Takich jak:
- read_csv()
- read_excel()
- read_json()
- read_pickle()
- read_sql()
Oraz analogiczne funkcje do zapisu do plików w tym formacie:
- to_csv()
- to_excel()
- to_json()
- to_pickle()
- to_sql()
- to_html()
Funkcje te posiadają całą armię argumentów i opcji, które pozwolą nam na zarówno prosty odczyt z pliku, jak i ustawienie wyrafinowanego sposobu importu danych. Przykładowo ominięcie niektórych wierszy, ominięcie kolumn, wczytanie danych określając ich typ, wczytanie tylko określonej ilości danych, nadanie nazw kolumnom i wiele innych.
Dokumentacja do samej funkcji read_csv(), znajduje się tutaj. Nie sposób się z nią zaznajomić na tym etapie nauki., gdyż jest bardzo rozbudowana
Najlepszą drogą do nabrania biegłości w posługiwaniu się nimi, jest zobaczenie na przykładach w jakich sposób odpowiednio sparametryzowane funkcje, mogę wykonać za nas dużą ilość pracy.
Poniżej zobaczymy proste przyklady, natomiast w następnych lekcjach będziemy korzystać z tych funkcji na różnych zbiorach danych, które będą wymagały od nas pogłębiania naszej wiedzy na ich temat.
Przykład życia funkcji read_excel()
Na początku zobaczymy jak możemy wczytać dane z pliku Excel. W tym celu, jeżeli jeszcze tego nie zrobiliśmy, musimy zainstalować biblioteki które umożliwią nam obsługę tego formatu:
pip install xlwt openpyxl xlrd
Następnie możemy rozpocząć przygodę z read_excel(), na przykładnie pliku 'imiona’.
Jeżeli otworzymy plik, to zobaczymy że ma on 3 zakładki. Dane w każdej zakładce mają troszkę inny format. Pierwsza zakładka posiada prostą tablę. Druga zakładka posiada podobną tabelę, ale z pustym wierszam na początku, natomiast trzecia zakładka, nie posiada nazw kolumn:
Jest to bardzo prosty, ale realny przykład tego jak różne pliki mogą różnić się pod kątem formatu danych. Tym samym sposób użycia funkcji takich jak read_excel(), będzie inny, dla każdej z tych zakładek.
W tym przykładnie pliki są na tyle małe, że możemy je 'ręcznie napracić’, jednak w praktyce nie zawsze będzie to możliwe.
Zobaczymy jak możemy poradzić sobie z poszczególnymi zakładkami:
- Zakładka 1
imiona = pd.read_excel('c:/python/pandas/imiona.xlsx')
Najprostrze użycie funkcji read_excel(), gdzie jako jedyny parametr wskazujemy ścieżkę do naszego pliku
- Zakładka 2
pd.read_excel('c:/python/pandas/imiona.xlsx', sheet_name='Wynik', header=1)
W tym przypadku użyliśmy parametru sheet_name, które wskazuje na konkretną zakładkę oraz parametru header, który wskazuje na wiersz w pliku, który zawiera nazwy kolumn.
- Zakładka 3
pd.read_excel('c:/python/pandas/imiona.xlsx', sheet_name='Wynik2', header=None, names=['Imię', 'Nazwisko', 'Wynik'])
Nadaliśmy parametrowi header wartość None, oraz przypisaliśmy kolumnom nazwy dzięki parametrowi names. To samo mogli byśmy osiągnąć w ten sposób:
df = pd.read_excel('c:/python/pandas/imiona.xlsx', sheet_name='Wynik2', header=None) df.columns = ['Imię', 'Nazwisko', 'Wynik']
Jednak pierwszy sposób jest zgrabniejszy i wygodniejszy.
Przykład użycia funkcji read_csv()
Drugim najpopularniejszym formatem danych, obok xls z jakim ma do czynienia każdy analityk danych to plik csv. Są to pliki tekstowe, w który poszczególne kolumny oddzielone są w większości przypadków znakiem przecinka ’,’ jednak czasami stosowane są też średniki ’;’ czy też tabulatory ’ ’.
Skorzystajmy z pliku cities, w którym znajdują się podstawowe informacje na temat miast w formacie csv. Poszczególne kolumny oddzielone są przecinkami:
miasta = pd.read_csv('c:/python/pandas/worldcities.csv')
Wygląda to równie prosto jak w przypadku pliku Excel
Przykład użycia funkcji to_excel oraz to_json
Jeżeli chcieli byśmy zapisać nasz DataFrame miasta do innego pliku, to z pomocą przychodzą nam funkcje to_*
Przykładowo:
miasta.to_excel("c:/python/pandas/miasta.xlsx", sheet_name='miasta') miasta.to_json("c:/python/pandas/miasta.json")
W wyniku tego kodu, oprócz pliku Excelowego otrzymaliśmy również plik JSON.
Podsumowując
Zapoznaliśmy się z podstawami tworzenia DataFrame. Zarówno na bazie danych wygenerowanych w naszym programie, jak i na bazie plików. Są to operacje które będziemy wykonywać w każdej kolejnej lekcji i tam też poznamy więcej możliwości odczytu z plików jakie ma nam do zaoferowania Pandas.
Spis treści Pandas Tutorial / Kurs
- Pandas – Intro
- Pandas – przygotowanie środowiska pracy
- Pandas – tworzenie prostego DataFrame
- Pandas – odczyt i zapis do pliku
- Pandas – podstawowe informacje o DataFrame
- Pandas – indeksy oraz funkcja loc
- Pandas – maski
- Pandas – modyfikacje kolumn
- Pandas – funkcja apply
- Pandas – typy danych
- Pandas – grupowanie z groupby
- Pandas – unstack oraz tabele przestawne
- Pandas – łączenie zbiorów danych
- Pandas – SQL i bazy danych