Pandas에서 DataFrame의 행을 반복하는 방법

Suraj Joshi 2023년1월30일
  1. Pandas DataFrame에서 행을 반복하는index 속성
  2. 파이썬에서 DataFrame의 행을 반복하는loc[]메소드
  3. 파이썬에서 DataFrame의 행을 반복하는iloc[]메소드
  4. pandas.DataFrame.iterrows()는 행 Pandas를 반복합니다
  5. pandas.DataFrame.itertuples는 행 Pandas를 반복합니다
  6. pandas.DataFrame.apply는 행 Pandas를 반복합니다
Pandas에서 DataFrame의 행을 반복하는 방법

DataFrame의 index 속성을 사용하여 Pandas DataFrame의 행을 반복 할 수 있습니다. DataFrame 객체의loc(),iloc(),iterrows(),itertuples(),iteritems()apply()메소드를 사용하여 DataFrame Pandas 행을 반복 할 수도 있습니다.

다음 섹션에서 아래 데이터 프레임을 예로 사용합니다.

import pandas as pd

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]

df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})

print(df)

출력:

       Date  Income_1  Income_2
0  April-10        10        20
1  April-11        20        30
2  April-12        10        10
3  April-13        15         5
4  April-14        10        40
5  April-16        12        13

Pandas DataFrame에서 행을 반복하는index 속성

Pandas DataFrame의 index 속성은 DataFrame의 맨 위 행에서 맨 아래 행까지 범위 객체를 제공합니다. 범위를 사용하여 Pandas의 행을 반복 할 수 있습니다.

import pandas as pd

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]

df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})

for i in df.index:
    print(
        "Total income in "
        + df["Date"][i]
        + " is:"
        + str(df["Income_1"][i] + df["Income_2"][i])
    )

출력:

Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25

각 행에 Income_1Income_2를 더하고 총 수입을 인쇄합니다.

파이썬에서 DataFrame의 행을 반복하는loc[]메소드

loc[]메소드는 한 번에 한 행에 액세스하는 데 사용됩니다. DataFrame을 통한 루프 내에서loc[]메소드를 사용하면 DataFrame의 행을 반복 할 수 있습니다.

import pandas as pd

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]

df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})

for i in range(len(df)):
    print(
        "Total income in "
        + df.loc[i, "Date"]
        + " is:"
        + str(df.loc[i, "Income_1"] + df.loc[i, "Income_2"])
    )

출력:

Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25

여기서range(len(df))는 DataFrame의 전체 행을 반복하는 범위 객체를 생성합니다.

파이썬에서 DataFrame의 행을 반복하는iloc[]메소드

Pandas DataFrame iloc 속성은loc 속성과 매우 유사합니다. lociloc의 유일한 차이점은loc에서는 액세스 할 행 또는 열의 이름을 지정해야하고 iloc에서는 액세스 할 행 또는 열의 인덱스를 지정해야한다는 것입니다.

import pandas as pd

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]

df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})

for i in range(len(df)):
    print(
        "Total income in " + df.iloc[i, 0] + " is:" + str(df.iloc[i, 1] + df.iloc[i, 2])
    )

출력:

Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25

여기서 인덱스 0은 DataFrame의 첫 번째 열, 즉 Date를 나타내고, 인덱스 1Income_1열을, 인덱스 2Income_2열을 나타냅니다.

pandas.DataFrame.iterrows()는 행 Pandas를 반복합니다

pandas.DataFrame.iterrows()의 색인을 반환합니다 Series로서 행과 행의 전체 데이터. 따라서이 함수를 사용하여 Pandas DataFrame의 행을 반복 할 수 있습니다.

import pandas as pd

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]

df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})


for index, row in df.iterrows():
    print(
        "Total income in "
        + row["Date"]
        + " is:"
        + str(row["Income_1"] + row["Income_2"])
    )

출력:

Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25

pandas.DataFrame.itertuples는 행 Pandas를 반복합니다

pandas.DataFrame.itertuples는 각 행에 대한 튜플을 반복하는 객체를 반환합니다. 첫 번째 필드는 인덱스이고 나머지 필드는 열 값입니다. 따라서이 함수를 사용하여 Pandas DataFrame의 행을 반복 할 수도 있습니다.

import pandas as pd

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]

df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})


for row in df.itertuples():
    print("Total income in " + row.Date + " is:" + str(row.Income_1 + row.Income_2))

출력:

Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25

pandas.DataFrame.apply는 행 Pandas를 반복합니다

pandas.DataFrame.apply는 DataFrame을 반환합니다.
DataFrame의 주어진 축을 따라 주어진 함수를 적용한 결과.

통사론:

DataFrame.apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwds)

여기서 func는 적용 할 함수를 나타내고 axis는 함수가 적용되는 축을 나타냅니다. axis=1 또는axis = 'columns'를 사용하여 각 행에 함수를 적용 할 수 있습니다.

import pandas as pd

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]

df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})


print(
    df.apply(
        lambda row: "Total income in "
        + row["Date"]
        + " is:"
        + str(row["Income_1"] + row["Income_2"]),
        axis=1,
    )
)

출력:

0    Total income in April-10 is:30
1    Total income in April-11 is:50
2    Total income in April-12 is:20
3    Total income in April-13 is:20
4    Total income in April-14 is:50
5    Total income in April-16 is:25
dtype: object

여기서 lambda키워드는 각 행에 적용되는 인라인 함수를 정의하는 데 사용됩니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

관련 문장 - Pandas DataFrame

관련 문장 - Pandas DataFrame Row