Iteracja jest procesem przejścia przez elementy sekwencji (np. listy, krotki, słownika itp.) i wykonania określonej operacji na każdym z nich. W bibliotece Pandas istnieje kilka sposobów użycia iteracji do przetwarzania danych.
Jednym z nich jest iterowanie po wierszach DataFrame’u za pomocą metody iterrows()
. Ta metoda zwraca krotkę, w której pierwszym elementem jest indeks wiersza, a drugim jest szeregiem danych dla tego wiersza. Możemy wykorzystać tę metodę do przeprowadzenia dowolnej operacji na danych wiersza lub zmiany danych w wierszu. Przykład:
import pandas as pd
# utworzenie przykładowego DataFrame'u
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
# iterowanie po wierszach i zmiana wartości w kolumnie 'col1'
for index, row in df.iterrows():
df.loc[index, 'col1'] = row['col1'] + 1
print(df)
col1 col2
0 2 4
1 3 5
2 4 6
Innym sposobem jest użycie metody apply()
, która pozwala na zastosowanie funkcji lub lambdy do każdego wiersza lub kolumny DataFrame’u. Funkcja lub lambda są wywoływane dla każdego wiersza lub kolumny i zwracają nową wartość, która jest umieszczana w odpowiedniej komórce w nowym DataFrame’ie. Przykład:
import pandas as pd
# utworzenie przykładowego DataFrame'u
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
# zastosowanie funkcji do każdego wiersza i utworzenie nowego DataFrame'u
def add_one(row):
return row + 1
df = df.apply(add_one, axis=1)
print(df)
col1 col2
0 2 5
1 3 6
2 4 7
Możemy również użyć pętli for do iteracji po kolumnach DataFrame’u za pomocą metody iteritems()
. Ta metoda zwraca słownik, w którym kluczem jest nazwa kolumny, a wartością jest szereg danych z tej kolumny. Możemy wykorzystać tę metodę do przeprowadzenia dowolnej operacji na danych z kolumny lub zmiany danych w kolumnie. Przykład:
import pandas as pd
# utworzenie przykładowego DataFrame'u
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
# iterowanie po kolumnach i zmiana wartości w kolumnie 'col1'
for col_name, col_data in df.iteritems():
df[col_name] = col_data + 1
print(df)
col1 col2
0 2 5
1 3 6
2 4 7
Iteracja w Pandas jest bardzo przydatnym narzędziem do przetwarzania dużych zbiorów danych i pozwala na łatwe i szybkie wykonywanie różnych operacji na danych. Ważne jest jednak, aby pamiętać o optymalizacji kodu, ponieważ iteracja może być wolniejsza niż inne metody przetwarzania danych dostępne w Pandas.
Oto kilka przykładów użycia metody iteritems()
w Pandas:
- Zmiana wartości w kolumnie:
import pandas as pd
# utworzenie przykładowego DataFrame'u
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
# zmiana wartości w kolumnie 'col1'
for col_name, col_data in df.iteritems():
if col_name == 'col1':
df[col_name] = col_data * 2
print(df)
col1 col2
0 2 4
1 4 5
2 6 6
2. Filtrowanie kolumn:
import pandas as pd
# utworzenie przykładowego DataFrame'u
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
# usunięcie kolumny 'col1'
for col_name, col_data in df.iteritems():
if col_name == 'col1':
df = df.drop(col_name, axis=1)
print(df)
col2
0 4
1 5
2 6
3. Sumowanie wartości w kolumnie:
import pandas as pd
# utworzenie przykładowego DataFrame'u
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
# sumowanie wartości w kolumnie 'col2'
total = 0
for col_name, col_data in df.iteritems():
if col_name == 'col2':
total += col_data.sum()
print(total)
Wynik: 15