pandas
Korzystanie z .ix, .iloc, .loc, .at i .iat w celu uzyskania dostępu do DataFrame
Szukaj…
Korzystanie z .iloc
.iloc używa liczb całkowitych do odczytu i zapisu danych do DataFrame.
Najpierw utwórzmy DataFrame:
df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
'two': [6, 7, 8, 9, 10],
}, index=['a', 'b', 'c', 'd', 'e'])
Ten DataFrame wygląda następująco:
one two
a 1 6
b 2 7
c 3 8
d 4 9
e 5 10
Teraz możemy używać .iloc do odczytu i zapisu wartości. Przeczytajmy pierwszy wiersz, pierwszą kolumnę:
print df.iloc[0, 0]
Spowoduje to wydrukowanie:
1
Możemy również ustawić wartości. Pozwala ustawić drugą kolumnę, drugi wiersz na coś nowego:
df.iloc[1, 1] = '21'
A potem spójrz, co się stało:
print df
one two
a 1 6
b 2 21
c 3 8
d 4 9
e 5 10
Korzystanie z .loc
.loc używa etykiet do odczytu i zapisu danych.
Skonfigurujmy DataFrame:
df = pd.DataFrame({'one': [1, 2, 3, 4, 5],
'two': [6, 7, 8, 9, 10],
}, index=['a', 'b', 'c', 'd', 'e'])
Następnie możemy wydrukować DataFrame, aby zobaczyć kształt:
print df
To wyjdzie
one two
a 1 6
b 2 7
c 3 8
d 4 9
e 5 10
Używamy etykiet kolumn i wierszy , aby uzyskać dostęp do danych w .loc. Ustawmy wiersz „c”, kolumnę „dwa” na wartość 33:
df.loc['c', 'two'] = 33
Tak wygląda teraz DataFrame:
one two
a 1 6
b 2 7
c 3 33
d 4 9
e 5 10
Warto zauważyć, że użycie df['two'].loc['c'] = 33
może nie zgłosić ostrzeżenia, a nawet może działać, jednak użycie df.loc['c', 'two']
gwarantuje prawidłowe działanie , podczas gdy ten pierwszy nie.
Możemy na przykład czytać wycinki danych
print df.loc['a':'c']
wypisze wiersze od a do c. To jest włącznie.
one two
a 1 6
b 2 7
c 3 8
I wreszcie możemy zrobić oba razem:
print df.loc['b':'d', 'two']
Wyprowadza wiersze od b do c kolumny „dwa”. Zauważ, że etykieta kolumny nie jest drukowana.
b 7
c 8
d 9
Jeśli .loc jest dostarczany z argumentem liczby całkowitej, który nie jest etykietą, powraca do indeksowania liczb całkowitych osi (zachowanie .iloc). Umożliwia to indeksowanie mieszanych etykiet i liczb całkowitych:
df.loc['b', 1]
zwróci wartość w drugiej kolumnie (indeks rozpoczynający się od 0) w wierszu „b”:
7