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

  1. Pandas – Intro
  2. Pandas – przygotowanie środowiska pracy
  3. Pandas – tworzenie prostego DataFrame
  4. Pandas – odczyt i zapis do pliku
  5. Pandas – podstawowe informacje o DataFrame
  6. Pandas – indeksy oraz funkcja loc
  7. Pandas – maski
  8. Pandas – modyfikacje kolumn
  9. Pandas – funkcja apply
  10. Pandas – typy danych
  11. Pandas – grupowanie z groupby
  12. Pandas – unstack oraz tabele przestawne
  13. Pandas – łączenie zbiorów danych
  14. Pandas – SQL i bazy danych
Facebook Comments