Pandas는 다른 열을 기반으로 열을 만듭니다

Suraj Joshi 2023년1월30일
  1. 다른 열의 값을 기반으로 요소 별 작업으로 Pandas DataFrame에 새 열을 만듭니다
  2. DataFrame.apply()메서드를 사용하여 다른 열의 값을 기반으로 Pandas DataFrame에 새 열 만들기
Pandas는 다른 열을 기반으로 열을 만듭니다

이 튜토리얼에서는 열의 각 요소에 함수를 적용하거나DataFrame.apply()메서드를 사용하여 DataFrame의 다른 열 값을 기반으로 Pandas DataFrame에서 새 열을 만드는 방법을 소개합니다.

import pandas as pd

items_df = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 343, 565],
        "Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
        "Cost": [300, 400, 350, 100, 1000, 400],
        "Discount(%)": [10, 15, 5, 0, 2, 7],
    }
)

print(items_df)

출력:

    Id    Name  Cost  Discount(%)
0  302   Watch   300           10
1  504  Camera   400           15
2  708   Phone   350            5
3  103   Shoes   100            0
4  343  Laptop  1000            2
5  565     Bed   400            7

코드 조각에 위에 표시된 DataFrame을 사용하여 DataFrame의 다른 열 값을 기반으로 Pandas DataFrame에서 새 열을 만드는 방법을 보여줍니다.

다른 열의 값을 기반으로 요소 별 작업으로 Pandas DataFrame에 새 열을 만듭니다

import pandas as pd

items_df = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 343, 565],
        "Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
        "Actual Price": [300, 400, 350, 100, 1000, 400],
        "Discount(%)": [10, 15, 5, 0, 2, 7],
    }
)

print("Initial DataFrame:")
print(items_df, "\n")

items_df["Final Price"] = items_df["Actual Price"] - (
    (items_df["Discount(%)"] / 100) * items_df["Actual Price"]
)


print("DataFrame after addition of new column")
print(items_df, "\n")

출력:

Initial DataFrame:
    Id    Name  Actual Price  Discount(%)
0  302   Watch           300           10
1  504  Camera           400           15
2  708   Phone           350            5
3  103   Shoes           100            0
4  343  Laptop          1000            2
5  565     Bed           400            7 

DataFrame after addition of new column
    Id    Name  Actual Price  Discount(%)  Final Price
0  302   Watch           300           10        270.0
1  504  Camera           400           15        340.0
2  708   Phone           350            5        332.5
3  103   Shoes           100            0        100.0
4  343  Laptop          1000            2        980.0
5  565     Bed           400            7        372.0 

DataFrame의 Actual Price열에서 할인 금액을 차감하여 각 제품의 최종 가격을 계산합니다. 그런 다음 최종 가격 값의 Series를 DataFrame items_dfFinal Price열에 할당합니다.

DataFrame.apply()메서드를 사용하여 다른 열의 값을 기반으로 Pandas DataFrame에 새 열 만들기

import pandas as pd

items_df = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 343, 565],
        "Name": ["Watch", "Camera", "Phone", "Shoes", "Laptop", "Bed"],
        "Actual_Price": [300, 400, 350, 100, 1000, 400],
        "Discount_Percentage": [10, 15, 5, 0, 2, 7],
    }
)

print("Initial DataFrame:")
print(items_df, "\n")

items_df["Final Price"] = items_df.apply(
    lambda row: row.Actual_Price - ((row.Discount_Percentage / 100) * row.Actual_Price),
    axis=1,
)

print("DataFrame after addition of new column")
print(items_df, "\n")

출력:

Initial DataFrame:
    Id    Name  Actual_Price  Discount_Percentage
0  302   Watch           300                   10
1  504  Camera           400                   15
2  708   Phone           350                    5
3  103   Shoes           100                    0
4  343  Laptop          1000                    2
5  565     Bed           400                    7 

DataFrame after addition of new column
    Id    Name  Actual_Price  Discount_Percentage  Final Price
0  302   Watch           300                   10        270.0
1  504  Camera           400                   15        340.0
2  708   Phone           350                    5        332.5
3  103   Shoes           100                    0        100.0
4  343  Laptop          1000                    2        980.0
5  565     Bed           400                    7        372.0 

apply()메소드에 정의 된 람다 함수를 DataFrame items_df의 각 행에 적용하고 마지막으로 DataFrame items_dfFinal Price 열에 일련의 결과를 할당합니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

관련 문장 - Pandas DataFrame Column