navody:pandas
Obsah
Pandas
Příklady
import pandas as pd df=pd.DataFrame({"jmeno": ["Karel", "Petr", "Pavel"], "skore": [10, 15, 5], "vek": [18, 22, 17]}, index=[10, 20, 30]) df=pd.DataFrame([["Karel", 10, 18], ["Petr", 15, 22], ["Pavel", 5, 17]], columns=["jmeno", "skore", "vek"], index=[10, 20, 30]) df=pd.DataFrame([{"jmeno": "Karel", "skore": 10, "vek": 18}, {"jmeno": "Petr", "skore": 15, "vek": 22}, {"jmeno": "Pavel", "skore": 5, "vek": 17}], index=[10, 20, 30]) # jmeno skore vek # 10 Karel 10 18 # 20 Petr 15 22 # 30 Pavel 5 17
Analýza
df.dtypes # jmeno object # skore int64 # vek int64 # dtype: object
df.count() # jmeno 3 # skore 3 # vek 3 # dtype: int64
pocet_radku = len(df) pocet_sloupcu = len(df.columns)
df.jmeno.value_counts() # Karel 1 # Petr 1 # Pavel 1 # Name: jmeno, dtype: int64
Editace tabulky
Přejmenování sloupců
df1 = df.rename(columns={"jmeno": "krestni_jmeno"}) # krestni_jmeno skore vek # 10 Karel 10 18 # 20 Petr 15 22 # 30 Pavel 5 17
Změna typu sloupce
df1 = df.astype({"skore": float}) # jmeno skore vek # 10 Karel 10.0 18 # 20 Petr 15.0 22 # 30 Pavel 5.0 17
Nastavení zobrazení
zobrazí všechny řádky a sloupec má maximální délku 1000 znaků
pd.options.display.max_colwidth = 1000 pd.options.display.min_rows = None pd.options.display.max_rows = None display(df) pd.reset_option("display.max_rows") pd.reset_option("display.min_rows") pd.reset_option("display.max_colwidth")
Filtrování řádků
Head
vybere pouze první dva řádky
df1 = df.head(2) # jmeno skore vek # 10 Karel 10 18 # 20 Petr 15 22
Podmínky
podle indexu
df1 = df.loc[[10, 20]] # jmeno skore vek # 10 Karel 10 18 # 20 Petr 15 22
df1 = df[(df.jmeno == "Pavel") | (df.skore > 10)] # jmeno skore vek # 20 Petr 15 22 # 30 Pavel 5 17
df1 = df[(df.vek.isin([17, 18])) & (df.skore > 8)] # jmeno skore vek # 10 Karel 10 18
df1 = df[df.jmeno.astype(str).str.contains("are")] # jmeno skore vek # 10 Karel 10 18
Filtrování sloupců
df1 = df[["jmeno", "skore"]] # jmeno skore # 10 Karel 10 # 20 Petr 15 # 30 Pavel 5
df1 = df.drop(["skore", "vek"], axis=1) # jmeno # 10 Karel # 20 Petr # 30 Pavel
Přidání sloupce
df["title"] = df.apply((lambda x: "{} ({})".format(x.jmeno, x.vek)), axis=1) # jmeno skore vek title # 10 Karel 10 18 Karel (18) # 20 Petr 15 22 Petr (22) # 30 Pavel 5 17 Pavel (17)
vložení na pozici
df.insert(1, "prijmeni", ["Novák", "Novotný", "Nováček"]) # jmeno prijmeni skore vek # 10 Karel Novák 10 18 # 20 Petr Novotný 15 22 # 30 Pavel Nováček 5 17
Řazení řádků
df1 = df.sort_values(by=["jmeno"]) # jmeno skore vek # 10 Karel 10 18 # 30 Pavel 5 17 # 20 Petr 15 22
Spojení tabulek
připojení sloupců
df2=pd.DataFrame({"skore2": [1, 2, 3, 4], "skore3": [5, 8, 4, 7]}, index=[11, 20, 30, 40]) pd.concat([df, df2], axis=1) # jmeno skore vek skore2 skore3 # 10 Karel 10.0 18.0 NaN NaN # 11 NaN NaN NaN 1.0 5.0 # 20 Petr 15.0 22.0 2.0 8.0 # 30 Pavel 5.0 17.0 3.0 4.0 # 40 NaN NaN NaN 4.0 7. pd.concat([df, df2], axis=1, join="inner") # jmeno skore vek skore2 skore3 # 20 Petr 15 22 2 8 # 30 Pavel 5 17 3 4
připojení řádků
df2=pd.DataFrame({"jmeno": ["Honza", "Esmeralda"], "skore": [9, 20], "vek": [31, 16]}, index=[11, 12]) pd.concat([df, df2], axis=0) # jmeno skore vek # 10 Karel 10 18 # 20 Petr 15 22 # 30 Pavel 5 17 # 11 Honza 9 31 # 12 Esmeralda 20 16
navody/pandas.txt · Poslední úprava: 2022/09/13 10:04 autor: jules