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

Obsługa plików z Excela

Funkcja pandas.read_excel

https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html

** Ważne: trzeba zainstalować bibliotekę openpyxl do importu .xlsx oraz xlrd do importu .xls (nie trzeba ich importować w kodzie jawnie w większości wypadków)

Operacje manipulacyjne

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html?highlight=merge#pandas.DataFrame.merge

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.join.html?highlight=join#pandas.DataFrame.join

https://pandas.pydata.org/docs/reference/api/pandas.concat.html?highlight=concat#pandas.concat

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.pivot.html?highlight=pivot#pandas.DataFrame.pivot

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.melt.html?highlight=melt#pandas.DataFrame.melt

“Tidy data”

Imię Wiek Wzrost Kolor oczu
Adam 26 167 Brązowe
Sylwia 34 164 Piwne
Tomasz 42 183 Niebieskie

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: