Ostatnia aktualizacja: 2021-05-18 09:48:16
Pandas
Pandas jest biblioteką Pythona służącą do analizy i manipulowania danymi
Import:
import pandas as pd
Podstawowe byty
Seria - Series
Ramka danych - DataFrame
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcbmltcG9ydCBudW1weSBhcyBucFxuXG5zID0gcGQuU2VyaWVzKFszLCAtNSwgNywgNF0pXG5wcmludChzKVxucHJpbnQocy52YWx1ZXMpXG5wcmludCh0eXBlKHMudmFsdWVzKSlcbnQgPSBucC5zb3J0KHMudmFsdWVzKVxucHJpbnQodClcbnByaW50KHMuaW5kZXgpXG5wcmludCh0eXBlKHMuaW5kZXgpKSJ9
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcbmltcG9ydCBudW1weSBhcyBucFxuXG5zID0gcGQuU2VyaWVzKFszLCAtNSwgNywgNF0sIGluZGV4PVsnYScsICdiJywgJ2MnLCAnZCddKVxucHJpbnQocylcbnByaW50KHNbJ2InXSlcbnNbJ2InXSA9IDhcbnByaW50KHMpXG5wcmludChzW3MgPiA1XSlcbnByaW50KHMgKiAyKVxucHJpbnQobnAuc2luKHMpKSJ9
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcblxuZCA9IHsna2V5MSc6IDM1MCwgJ2tleTInOiA3MDAsICdrZXkzJzogNzB9XG5zID0gcGQuU2VyaWVzKGQpXG5wcmludChzKSJ9
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcblxuZCA9IHsna2V5MSc6IDM1MCwgJ2tleTInOiA3MDAsICdrZXkzJzogNzB9XG5rID0gWydrZXkwJywgJ2tleTInLCAna2V5MycsICdrZXkxJ11cbnMgPSBwZC5TZXJpZXMoZCwgaW5kZXg9aylcbnByaW50KHMpXG5wZC5pc251bGwocylcbnBkLm5vdG51bGwocylcbnMuaXNudWxsKClcbnMubm90bnVsbCgpXG5zLm5hbWUgPSBcIldhcnRvc2NcIlxucy5pbmRleC5uYW1lID0gXCJLbHVjelwiXG5wcmludChzKSJ9
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcblxuZGF0YSA9IHsnQ291bnRyeSc6IFsnQmVsZ2l1bScsICdJbmRpYScsICdCcmF6aWwnXSxcbiAgICAgICAgJ0NhcGl0YWwnOiBbJ0JydXNzZWxzJywgJ05ldyBEZWxoaScsICdCcmFzXHUwMGVkbGlhJ10sXG4gICAgICAgICdQb3B1bGF0aW9uJzogWzExMTkwODQ2LCAxMzAzMTcxMDM1LCAyMDc4NDc1MjhdfVxuZnJhbWUgPSBwZC5EYXRhRnJhbWUoZGF0YSlcbnByaW50KGZyYW1lKVxuZGYgPSBwZC5EYXRhRnJhbWUoZGF0YSwgY29sdW1ucz1bJ0NvdW50cnknLCAnQ2FwaXRhbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUG9wdWxhdGlvbiddKVxucHJpbnQoZGYpXG5wcmludChkZi5pbG9jW1swXSwgWzBdXSlcbnByaW50KGRmLmxvY1tbMF0sIFsnQ291bnRyeSddXSlcbnByaW50KGRmLmxvY1syXSlcbnByaW50KGRmLmxvY1s6LCAnQ2FwaXRhbCddKVxucHJpbnQoZGYubG9jWzEsICdDYXBpdGFsJ10pXG5wcmludChkZltkZlsnUG9wdWxhdGlvbiddID4gMTIwMDAwMDAwMF0pXG5wcmludChkZi5kcm9wKCdDb3VudHJ5JywgYXhpcz0xKSlcbnByaW50KGRmLnNoYXBlKVxucHJpbnQoZGYuaW5kZXgpXG5wcmludChkZi5jb2x1bW5zKVxucHJpbnQoZGYuaW5mbygpKVxucHJpbnQoZGYuY291bnQoKSkifQ==
Uzupełnianie braków
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcblxucyA9IHBkLlNlcmllcyhbMywgLTUsIDcsIDRdLCBpbmRleD1bJ2EnLCAnYicsICdjJywgJ2QnXSlcbnMyID0gcGQuU2VyaWVzKFs3LCAtMiwgM10sIGluZGV4PVsnYScsICdjJywgJ2QnXSlcbnByaW50KHMgKyBzMilcbnByaW50KHMuYWRkKHMyLCBmaWxsX3ZhbHVlPTApKVxucHJpbnQocy5tdWwoczIsIGZpbGxfdmFsdWU9MikpIn0=
Obsługa plików csv
Funkcja pandas.read_csv
Dokumentacja: link
Zapis pandas.DataFrame.to_csv
Dokumentacja: link
“Tidy data”
Adam |
26 |
167 |
Brązowe |
Sylwia |
34 |
164 |
Piwne |
Tomasz |
42 |
183 |
Niebieskie |
- jedna obserwacja (jednostka statystyczna) = jeden wiersz w tabeli/macierzy/ramce danych
- wartosci danej cechy znajduja sie w kolumnach
- jeden typ/rodzaj obserwacji w jednej tabeli/macierzy/ramce danych
Obsługa brakujących danych
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBudW1weSBhcyBucFxuaW1wb3J0IHBhbmRhcyBhcyBwZFxuXG5zdHJpbmdfZGF0YSA9IHBkLlNlcmllcyhbJ2FhcmR2YXJrJywgJ2FydGljaG9rZScsIG5wLm5hbiwgJ2F2b2NhZG8nXSlcbnByaW50KHN0cmluZ19kYXRhKVxucHJpbnQoc3RyaW5nX2RhdGEuaXNudWxsKCkpXG5wcmludChzdHJpbmdfZGF0YS5kcm9wbmEoKSkifQ==
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImZyb20gbnVtcHkgaW1wb3J0IG5hbiBhcyBOQVxuaW1wb3J0IHBhbmRhcyBhcyBwZFxuXG5kYXRhID0gcGQuRGF0YUZyYW1lKFtbMS4sIDYuNSwgMy5dLCBbMS4sIE5BLCBOQV0sIFxuICAgICAgICAgICAgICAgICAgICAgW05BLCBOQSwgTkFdLCBbTkEsIDYuNSwgMy5dXSlcbmNsZWFuZWQgPSBkYXRhLmRyb3BuYSgpXG5wcmludChjbGVhbmVkKVxucHJpbnQoZGF0YS5kcm9wbmEoaG93PSdhbGwnKSlcbmRhdGFbNF0gPSBOQVxucHJpbnQoZGF0YS5kcm9wbmEoaG93PSdhbGwnLCBheGlzPTEpKVxucHJpbnQoZGF0YSlcbnByaW50KGRhdGEuZmlsbG5hKDApKVxucHJpbnQoZGF0YS5maWxsbmEoezE6IDAuNSwgMjogMH0pKSJ9
Usuwanie duplikatów
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcblxuZGF0YSA9IHBkLkRhdGFGcmFtZSh7J2sxJzogWydvbmUnLCAndHdvJ10gKiAzICsgWyd0d28nXSxcbiAgICAgICAgICAgICAgICAgICAgICdrMic6IFsxLCAxLCAyLCAzLCAzLCA0LCA0XX0pXG5wcmludChkYXRhKVxucHJpbnQoZGF0YS5kdXBsaWNhdGVkKCkpXG5wcmludChkYXRhLmRyb3BfZHVwbGljYXRlcygpKSJ9
Zastępowanie wartościami
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcbmltcG9ydCBudW1weSBhcyBucFxuXG5kYXRhID0gcGQuU2VyaWVzKFsxLiwgLTk5OS4sIDIuLCAtOTk5LiwgLTEwMDAuLCAzLl0pXG5wcmludChkYXRhKVxucHJpbnQoZGF0YS5yZXBsYWNlKC05OTksIG5wLm5hbikpXG5wcmludChkYXRhLnJlcGxhY2UoWy05OTksIC0xMDAwXSwgbnAubmFuKSlcbnByaW50KGRhdGEucmVwbGFjZShbLTk5OSwgLTEwMDBdLCBbbnAubmFuLCAwXSkpXG5wcmludChkYXRhLnJlcGxhY2Uoey05OTk6IG5wLm5hbiwgLTEwMDA6IDB9KSkifQ==
Dyskretyzacja i podział na koszyki
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcblxuYWdlcyA9IFsyMCwgMjIsIDI1LCAyNywgMjEsIDIzLCAzNywgMzEsIDYxLCA0NSwgNDEsIDMyXVxuYmlucyA9IFsxOCwgMjUsIDM1LCA2MCwgMTAwXVxuY2F0cyA9IHBkLmN1dChhZ2VzLCBiaW5zKVxucHJpbnQoY2F0cylcbnByaW50KGNhdHMuY29kZXMpXG5wcmludChjYXRzLmNhdGVnb3JpZXMpXG5wcmludChwZC52YWx1ZV9jb3VudHMoY2F0cykpIn0=
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcblxuYWdlcyA9IFsyMCwgMjIsIDI1LCAyNywgMjEsIDIzLCAzNywgMzEsIDYxLCA0NSwgNDEsIDMyXVxuYmlucyA9IFsxOCwgMjUsIDM1LCA2MCwgMTAwXVxuY2F0czIgPSBwZC5jdXQoYWdlcywgWzE4LCAyNiwgMzYsIDYxLCAxMDBdLCByaWdodD1GYWxzZSlcbnByaW50KGNhdHMyKVxuZ3JvdXBfbmFtZXMgPSBbJ1lvdXRoJywgJ1lvdW5nQWR1bHQnLFxuICAgICAgICAgICAgICAgJ01pZGRsZUFnZWQnLCAnU2VuaW9yJ11cbnByaW50KHBkLmN1dChhZ2VzLCBiaW5zLCBsYWJlbHM9Z3JvdXBfbmFtZXMpKSJ9
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcbmltcG9ydCBudW1weSBhcyBucFxuXG5kYXRhID0gbnAucmFuZG9tLnJhbmQoMjApXG5wcmludChwZC5jdXQoZGF0YSwgNCwgcHJlY2lzaW9uPTIpKSJ9
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcbmltcG9ydCBudW1weSBhcyBucFxuXG5kYXRhID0gbnAucmFuZG9tLnJhbmRuKDEwMDApXG5jYXRzID0gcGQucWN1dChkYXRhLCA0KVxucHJpbnQoY2F0cylcbnByaW50KHBkLnZhbHVlX2NvdW50cyhjYXRzKSkifQ==
Wykrywanie i filtrowanie elementów odstających
eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6ImltcG9ydCBwYW5kYXMgYXMgcGRcbmltcG9ydCBudW1weSBhcyBucFxuXG5kYXRhID0gcGQuRGF0YUZyYW1lKG5wLnJhbmRvbS5yYW5kbigxMDAwLCA0KSlcbnByaW50KGRhdGEuZGVzY3JpYmUoKSlcbmNvbCA9IGRhdGFbMl1cbnByaW50KGNvbFtucC5hYnMoY29sKSA+IDNdKVxucHJpbnQoZGF0YVsobnAuYWJzKGRhdGEpID4gMykuYW55KDEpXSkifQ==
Bibliografia:
- Dokumentacja biblioteki, https://pandas.pydata.org/, dostęp online 5.03.2021.
- Hannah Stepanek, Thinking in Pandas, How to Use the Python Data Analysis Library the Right Way, Apress, 2020.