Ugrás a fő tartalomra

Python pandas alapok

 Python Pandas alapok




In [3]:
In [36]:
Out[36]:
helyseglakos
0Debrecen204333
1Miskolc162905
2Szeged161837
3Pécs147719
4Budapest 11. ker.144599
.........
3171Felsőszenterzsébet17
3172Tornakápolna15
3173Tornabarakony14
3174Gagyapáti13
3175Iborfia9

3176 rows × 2 columns

In [38]:
Sor, oszlop szám (3176, 2)
index RangeIndex(start=0, stop=3176, step=1)
Oszlop nevek Index(['helyseg', 'lakos'], dtype='object')
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3176 entries, 0 to 3175
Data columns (total 2 columns):
 #   Column   Non-Null Count  Dtype 
---  ------   --------------  ----- 
 0   helyseg  3176 non-null   object
 1   lakos    3176 non-null   int64 
dtypes: int64(1), object(1)
memory usage: 49.8+ KB
ifo None
count helyseg    3176
lakos      3176
dtype: int64
cumsum                                                 helyseg    lakos
0                                              Debrecen   204333
1                                       DebrecenMiskolc   367238
2                                 DebrecenMiskolcSzeged   529075
3                             DebrecenMiskolcSzegedPécs   676794
4            DebrecenMiskolcSzegedPécsBudapest 11. ker.   821393
...                                                 ...      ...
3171  DebrecenMiskolcSzegedPécsBudapest 11. ker.Győr...  9908747
3172  DebrecenMiskolcSzegedPécsBudapest 11. ker.Győr...  9908762
3173  DebrecenMiskolcSzegedPécsBudapest 11. ker.Győr...  9908776
3174  DebrecenMiskolcSzegedPécsBudapest 11. ker.Győr...  9908789
3175  DebrecenMiskolcSzegedPécsBudapest 11. ker.Győr...  9908798

[3176 rows x 2 columns]
describe                lakos
count    3176.000000
mean     3119.898615
std     11263.585339
min         9.000000
25%       345.750000
50%       837.000000
75%      1965.250000
max    204333.000000
Elemi egyedi értékek ['Debrecen' 'Miskolc' 'Szeged' ... 'Tornabarakony' 'Gagyapáti' 'Iborfia']
Értékek száma 3176
In [6]:
   helyseg   lakos
1  Miskolc  162905
2   Szeged  161837
-----------
Budapest 11. ker.
-----------
helyseg    Szeged
lakos      161837
Name: 2, dtype: object
-----------
Pécs
In [7]:
In [15]:
Out[15]:
ugyfel_idvnevknevszdatumnem
01WalterGwendolyn1954-07-10M
12ArmstrongKieran1932-02-24M
23KlineSilas1938-07-16M
34GallagherRhoda1972-10-28M
45GallagherRobin1940-02-02M
56FrankBlair1977-12-19M
67CashVaughan1989-04-06M
78ShieldsCharissa1926-03-25F
89BrownInga1942-04-18F
910CrawfordGlenna1969-05-14F
In [9]:
Out[9]:
ugyfel_idvnevknevszdatumnem
01WalterGwendolyn1954-07-10M
12ArmstrongKieran1932-02-24M
23KlineSilas1938-07-16M
34GallagherRhoda1972-10-28M
45GallagherRobin1940-02-02M
56FrankBlair1977-12-19M
67CashVaughan1989-04-06M
78ShieldsCharissa1926-03-25F
89BrownInga1942-04-18F
910CrawfordGlenna1969-05-14F
In [10]:
Out[10]:
ugyfel_idvnevknevszdatumnem
01WalterGwendolyn1954-07-10M
12ArmstrongKieran1932-02-24M
23KlineSilas1938-07-16M
34GallagherRhoda1972-10-28M
45GallagherRobin1940-02-02M
56FrankBlair1977-12-19M
67CashVaughan1989-04-06M
78ShieldsCharissa1926-03-25F
89BrownInga1942-04-18F
910CrawfordGlenna1969-05-14F
In [17]:
Out[17]:
ugyfel_idigazolvanytipus_idigazolvanyszam
03JYLHVLF29
14JSIDNEE06
25SZDUSUNF64
36ULENBNYK36
47ULPFOTXW50
In [18]:
Out[18]:
ugyfel_idigazolvanytipus_idigazolvanyszam
03JYLHVLF29
14JSIDNEE06
25SZDUSUNF64
36ULENBNYK36
47ULPFOTXW50
58JMMRDLZ25
69SZSKCMWG34
710ULVUKMBG65
811SZNCGJMG03
912SZLZQSRL48

Két forrás tartalmának automatikus összekapcsolása 0.

Kapcsolás automatikusan a kulcs mező szerint történik

Amikor több táblában is tárolunk adatokat, és előfordulhat olyan, hogy az egyes táblák adatainak önmagában semmilyen értelme nincsen.

A megoldás keresés közben általában előjön, hogy egy másik táblázatban vannak olyan adatok amelyek segítenek az adatok hasznosulásában, de ehez a táblázatokat össze kell kapcsolni, ezt hívjuk merging -nek, azaz összeolvadásnak.

A panda dataframe .merge metódus a közös oszlopokat keresi a paraméterben megadott táblákban, majd ezek után egy új táblában a különböző sorokat ötvözi.

new_df = pd.merge(orders, costumers)

Szerencsére minden DataFrame-nek van merge metódusa, így ha több táblát is össze akarunk olvasztani, akkor ezeket tudjuk láncolatban használni.

new_df = orders.merge(customers).merge(products)


In [22]:
Out[22]:
ugyfel_idvnevknevszdatumnemigazolvanytipus_idigazolvanyszam
01WalterGwendolyn1954-07-10MNaNNaN
12ArmstrongKieran1932-02-24MNaNNaN
23KlineSilas1938-07-16MJYLHVLF29
34GallagherRhoda1972-10-28MJSIDNEE06
45GallagherRobin1940-02-02MSZDUSUNF64
56FrankBlair1977-12-19MULENBNYK36
67CashVaughan1989-04-06MULPFOTXW50
78ShieldsCharissa1926-03-25FJMMRDLZ25
89BrownInga1942-04-18FSZSKCMWG34
910CrawfordGlenna1969-05-14FULVUKMBG65
In [35]:
Out[35]:
ugyfel_id_xvnevknevszdatumnemugyfel_id_yigazolvanytipus_idigazolvanyszam
01WalterGwendolyn1954-07-10M3JYLHVLF29
12ArmstrongKieran1932-02-24M4JSIDNEE06
23KlineSilas1938-07-16M5SZDUSUNF64
34GallagherRhoda1972-10-28M6ULENBNYK36
45GallagherRobin1940-02-02M7ULPFOTXW50

Két forrás tartalmának összekapcsolása 1.

Kapcsolás az ugyfel_id kulcs mező szerint történik


In [13]:
Out[13]:
ugyfel_idvnevknevszdatumnemigazolvanyszam_merge
01WalterGwendolyn1954-07-10MNaNleft_only
12ArmstrongKieran1932-02-24MNaNleft_only
23KlineSilas1938-07-16MYLHVLF29both
34GallagherRhoda1972-10-28MSIDNEE06both
45GallagherRobin1940-02-02MDUSUNF64both
56FrankBlair1977-12-19MENBNYK36both
67CashVaughan1989-04-06MPFOTXW50both
78ShieldsCharissa1926-03-25FMMRDLZ25both
89BrownInga1942-04-18FSKCMWG34both
910CrawfordGlenna1969-05-14FVUKMBG65both

Nézzük egy érték vizsgálatot.

In [89]:
user_1 dimensions: (10, 5)
user_2 dimensions: (10, 3)
In [90]:
Out[90]:
True     8
False    2
Name: ugyfel_id, dtype: int64

Két forrás tartalmának összekapcsolása 2.

Kapcsolás az ugyfel_id kulcs mező szerint történik, de itt korréten megadjuk a kapcsolódo mezők nevét.


In [19]:
Out[19]:
ugyfel_idvnevknevszdatumnemigazolvanytipus_id_merge
01WalterGwendolyn1954-07-10MNaNleft_only
12ArmstrongKieran1932-02-24MNaNleft_only
23KlineSilas1938-07-16MJboth
34GallagherRhoda1972-10-28MJboth
45GallagherRobin1940-02-02MSZboth
56FrankBlair1977-12-19MULboth
67CashVaughan1989-04-06MULboth
78ShieldsCharissa1926-03-25FJboth
89BrownInga1942-04-18FSZboth
910CrawfordGlenna1969-05-14FULboth
1011NaNNaNNaNNaNSZright_only
1112NaNNaNNaNNaNSZright_only

Két forrás tartalmának összekapcsolása 3.

Kapcsolás az ugyfel_id kulcs mező szerint történik, de átnevezést is végzünk.


In [29]:
Out[29]:
ugyfel_idvnevknevszdatumnemigazolvanytipus_idigazolvanyszam
01WalterGwendolyn1954-07-10MNaNNaN
12ArmstrongKieran1932-02-24MNaNNaN
23KlineSilas1938-07-16MJYLHVLF29
34GallagherRhoda1972-10-28MJSIDNEE06
45GallagherRobin1940-02-02MSZDUSUNF64
56FrankBlair1977-12-19MULENBNYK36
67CashVaughan1989-04-06MULPFOTXW50
78ShieldsCharissa1926-03-25FJMMRDLZ25
89BrownInga1942-04-18FSZSKCMWG34
910CrawfordGlenna1969-05-14FULVUKMBG65

Új mezők létrehozása

Számított mezők


In [53]:
Out[53]:
ugyfel_idvnevknevszdatumnemEVHONAP
01WalterGwendolyn1954-07-10M19540710
12ArmstrongKieran1932-02-24M19320224
23KlineSilas1938-07-16M19380716
34GallagherRhoda1972-10-28M19721028
45GallagherRobin1940-02-02M19400202
56FrankBlair1977-12-19M19771219
67CashVaughan1989-04-06M19890406
78ShieldsCharissa1926-03-25F19260325
89BrownInga1942-04-18F19420418
910CrawfordGlenna1969-05-14F19690514
In [60]:
Out[60]:
ugyfel_idvnevknevszdatumnemEVHONAPkisbetus_neveidx2
01WalterGwendolyn1954-07-10M19540710walter2
12ArmstrongKieran1932-02-24M19320224armstrong4
23KlineSilas1938-07-16M19380716kline6
34GallagherRhoda1972-10-28M19721028gallagher8
45GallagherRobin1940-02-02M19400202gallagher10
56FrankBlair1977-12-19M19771219frank12
67CashVaughan1989-04-06M19890406cash14
78ShieldsCharissa1926-03-25F19260325shields16
89BrownInga1942-04-18F19420418brown18
910CrawfordGlenna1969-05-14F19690514crawford20

Több hasonló tábla összefűzése

Ha az adatok, amelyek hasonlóak, akár több táblában vannak tárolva, akkor azok beolvasása egy közös táblába is lehetséges, így a közös elemzés is elvégezhető.

pd.concat([df1, df2])

Mivel viszik magukkal az azonosítójukat, szükséges az összefűzés után a reset_index() mely létrehoz egy új indexelést.



Adatszámlálások


In [112]:
Összesen van 8 sorunk, amelyben nem szerepel egy oszlopban sem nulla.
Hiányzó adat 2 szor fordul elő az 'igazolvanytipus_id' mezőben.

A szűrések


In [115]:
Out[115]:
ugyfel_idvnevknevszdatumnem
78ShieldsCharissa1926-03-25F
89BrownInga1942-04-18F
910CrawfordGlenna1969-05-14F
In [117]:
Out[117]:
ugyfel_idvnevknevszdatumnem
34GallagherRhoda1972-10-28M
45GallagherRobin1940-02-02M
In [42]:
Out[42]:
ugyfel_idvnevknevszdatumnem
89BrownInga1942-04-18F

Statisztikai függvények használata


In [124]:
Out[124]:
szdatumknev
nem
F1926-03-253
M1932-02-247

Megjegyzések