Iteracja

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:

  1. 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