Pandas는 다른 열을 기반으로 열을 만듭니다
Suraj Joshi
2023년1월30일
- 다른 열의 값을 기반으로 요소 별 작업으로 Pandas DataFrame에 새 열을 만듭니다
-
DataFrame.apply()
메서드를 사용하여 다른 열의 값을 기반으로 Pandas DataFrame에 새 열 만들기
이 튜토리얼에서는 열의 각 요소에 함수를 적용하거나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_df
의 Final 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_df
의Final Price
열에 일련의 결과를 할당합니다.
작가: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn