import numpy as np
import pandas as pd
# Ramka danych utw. ze słownika
a = pd.DataFrame({"A":np.round(np.random.uniform(0,1,5),2),\
"B":np.random.choice(["a","b",None],5),\
"C":np.random.choice([True,False],5,True,[0.4,0.6])})
Out[]:
...: A B C
...: 0 0.04 None False
...: 1 0.15 None False
...: 2 0.61 a True
...: 3 0.88 b True
...: 4 0.39 b False
pd.DataFrame(macierz)
pd.DataFrame(macierz,columns = ["a","b"]) # i dodane wlasne nazwy kolumn
df["a"] # dane z ramki df z kolumny o nazwie a
df.a # dane z ramki df z kolumny o nazwie a
df.a.values # wartosci ramki df z kolumnyt o nazwie a
df.index # etykiety wierszy
df.columns # etykiety kolumn
df.columns = ["A","B","C","D"] # zmiana etykiet kolumn
z = df.set_index(np.arange(1,6,1)) # zmiana etykiet wierszy
df.index.name = "Wiersze" # dodanie nazwy wierszy
df.columns.name = "Kolumny" # dodanie nazwy kolumn
s[0:1] # pierwszy wiersz
s[0:4] # cztery poczatkowe wiersze
s[s.values > 0.5] # indeksowanie za pomoca wektora logicznego
s.iloc[1] # wybiera elementy na podstawie kolejnosci ich wystepowania
s.loc[1] # wybiera elementy na podstawie ich etykiet
# Ciąg momentów czasowych
pd.Series(pd.date_range("2019-05-20",periods=5))
pd.Series(pd.date_range("2019-05-20 00:00:00",periods=10,freq="1H"))
c = pd.DataFrame(np.round(np.linspace(0,10,20),2).reshape(5,4), columns = ["a","b","c","d"])
Out[]:
a b c d
0 0.00 0.53 1.05 1.58
1 2.11 2.63 3.16 3.68
2 4.21 4.74 5.26 5.79
3 6.32 6.84 7.37 7.89
4 8.42 8.95 9.47 10.00
pd.cut(c.a,np.r_[2,4,6,8]) # podzial zbioru na klasy
Out[]:
0 NaN
1 (2.0, 4.0]
2 (4.0, 6.0]
3 (6.0, 8.0]
4 NaN
Name: a, dtype: category
Categories (3, interval[int64]): [(2, 4] < (4, 6] < (6, 8]]
pd.cut(c.a,4) # podzial na 5 klas
Out[]:
0 (-0.00842, 2.105]
1 (2.105, 4.21]
2 (2.105, 4.21]
3 (6.315, 8.42]
4 (6.315, 8.42]
Name: a, dtype: category
Categories (4, interval[float64]): [(-0.00842, 2.105] < (2.105, 4.21] < (4.21, 6.315] < (6.315, 8.42]]
# Etykiety hierarchiczne
w = pd.DataFrame({"A":np.random.beta(1,2,10)})
w.index = pd.MultiIndex(levels = [["a","b","c"],[1,2,3,4,5]],\
codes = [[0,0,0,0,0,1,1,2,1,2],\
[0,0,0,1,2,2,2,3,3,4]], names = ["lev1","lev2"])
Out[]:
A
lev1 lev2
a 1 0.120039
1 0.344846
1 0.279192
2 0.446553
3 0.078031
b 3 0.211921
3 0.024213
c 4 0.536304
b 4 0.313813
c 5 0.068300
s = pd.Series(np.round(np.random.uniform(0,1,10),2))
i = np.r_[0:10]
np.random.shuffle(i) # wymieszaj
s.index = i
g = s.copy()
g.index = ["a","b","c","d","e","f","g","h","i","j"]
s.sample(3,random_state =123) # wybieranie losowe
z.insert(2,"Trzecia",(3,4)) # dodanie kolumny
n = z.drop("Druga",axis = 1) # usuniecie kolumny , dla axis = 0 wiersza
z.loc[2]=[3,4,4] # dodanie wiersza
z.describe() # podstawowe parametry statystyczne
p1 = p.dropna() # usuwanie brakow
p2 = p.fillna(value = 10) # przypisanie innej wartosci
p3 = p.fillna(method = "ffill") # zastapienie brakow poprzednia wartoscia