Pandas에서 주어진 조건에 따라 DataFrame 열을 만드는 방법
-
Pandas의 주어진 조건에 따라 새로운
DataFrame
열을 생성하는 목록 이해 -
Pandas에서 주어진 조건에 따라 새로운
DataFrame
열을 생성하는NumPy
메소드 -
Pandas의 주어진 조건에 따라 새로운
DataFrame
열을 생성하는pandas.DataFrame.apply
-
Pandas의 주어진 조건에 따라 새로운
DataFrame
열을 생성하는pandas.Series.map()
우리는 목록 이해력, 데이터프레임 객체의 NumPy
메소드,apply()
메소드 및map()
메소드를 사용하여 Pandas의 주어진 조건에 따라 DataFrame
열을 만들 수 있습니다.
Pandas의 주어진 조건에 따라 새로운 DataFrame
열을 생성하는 목록 이해
다양한리스트 이해를 활용하여 Pandas의 주어진 조건에 따라 새로운 DataFrame
열을 만들 수 있습니다. 리스트 이해는 이터 러블에서 새로운리스트를 생성하는 방법입니다. 다른 방법보다 훨씬 빠르고 간단합니다.
import pandas as pd
import numpy as np
list_of_dates = [
"2019-11-20",
"2020-01-02",
"2020-02-05",
"2020-03-10",
"2020-04-16",
"2020-05-01",
]
employees = ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry", "Kevin"]
salary = [200, 400, 300, 500, 600, 300]
df = pd.DataFrame(
{"Name": employees, "Joined date": pd.to_datetime(list_of_dates), "Salary": salary}
)
df["Status"] = ["Senior" if s >= 400 else "Junior" for s in df["Salary"]]
print(df)
출력:
Name Joined date Salary Status
0 Hisila 2019-11-20 200 Junior
1 Shristi 2020-01-02 400 Senior
2 Zeppy 2020-02-05 300 Junior
3 Alina 2020-03-10 500 Senior
4 Jerry 2020-04-16 600 Senior
5 Kevin 2020-05-01 300 Junior
급여가 400 이상인 경우 값이Senior
인df
에 새 열Status
를 작성하고 그렇지 않으면Junior
를 작성합니다.
Pandas에서 주어진 조건에 따라 새로운DataFrame
열을 생성하는NumPy
메소드
또한 NumPy 메소드를 사용하여 Pandas의 주어진 조건에 따라 DataFrame
열을 만들 수 있습니다. 이를 위해 np.where()
메소드와np.select()
메소드를 활용할 수 있습니다.
np.where()
메소드
np.where()
는 조건을 입력으로 받아 주어진 조건을 만족하는 요소의 인덱스를 반환합니다. 이 방법을 사용하면 조건이 하나만있을 때 Pandas의 지정된 조건을 기반으로 DataFrame 열을 만들 수 있습니다.
import pandas as pd
import numpy as np
list_of_dates = [
"2019-11-20",
"2020-01-02",
"2020-02-05",
"2020-03-10",
"2020-04-16",
"2020-05-01",
]
employees = ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry", "Kevin"]
salary = [200, 400, 300, 500, 600, 300]
df = pd.DataFrame(
{"Name": employees, "Joined date": pd.to_datetime(list_of_dates), "Salary": salary}
)
df["Status"] = np.where(df["Salary"] >= 400, "Senior", "Junior")
print(df)
출력:
Name Joined date Salary Status
0 Hisila 2019-11-20 200 Junior
1 Shristi 2020-01-02 400 Senior
2 Zeppy 2020-02-05 300 Junior
3 Alina 2020-03-10 500 Senior
4 Jerry 2020-04-16 600 Senior
5 Kevin 2020-05-01 300 Junior
np.where(condition, x, y)
는 조건이 충족되면x
를, 그렇지 않으면y
를 반환합니다.
위의 코드는 주어진 조건이 만족되면 값이Senior
인df
에 새 열Status
를 작성합니다. 그렇지 않으면 값은Junior
로 설정됩니다.
np.select()
메소드
np.where()
는 조건 목록과 선택 목록을 입력으로 받아서 조건에 따라 선택 목록의 요소로 구성된 배열을 반환합니다. 이 방법을 사용하면 두 개 이상의 조건이있을 때 Pandas의 주어진 조건을 기반으로 DataFrame 열을 만들 수 있습니다.
import pandas as pd
import numpy as np
list_of_dates = [
"2019-11-20",
"2020-01-02",
"2020-02-05",
"2020-03-10",
"2020-04-16",
"2020-05-01",
]
employees = ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry", "Kevin"]
salary = [200, 400, 300, 500, 600, 300]
df = pd.DataFrame(
{"Name": employees, "Joined date": pd.to_datetime(list_of_dates), "Salary": salary}
)
conditionlist = [
(df["Salary"] >= 500),
(df["Salary"] >= 300) & (df["Salary"] < 300),
(df["Salary"] <= 300),
]
choicelist = ["High", "Mid", "Low"]
df["Salary_Range"] = np.select(conditionlist, choicelist, default="Not Specified")
print(df)
출력:
Name Joined date Salary Salary_Range
0 Hisila 2019-11-20 200 Low
1 Shristi 2020-01-02 400 black
2 Zeppy 2020-02-05 300 Low
3 Alina 2020-03-10 500 High
4 Jerry 2020-04-16 600 High
5 Kevin 2020-05-01 300 Low
여기에서conditionlist
의 첫 번째 조건이 행에 대해 충족되면 해당 특정 행에 대한Salary_Range
열의 값이choicelist
의 첫 번째 요소로 설정됩니다. conditionlist
의 다른 조건은 비슷합니다. conditionlist
의 조건이 충족되지 않으면 해당 행의Salary_Range
열 값은np.where()
메소드의default
매개 변수 값으로 설정됩니다 (예 :Not Specified
).
Pandas의 주어진 조건에 따라 새로운DataFrame
열을 생성하는pandas.DataFrame.apply
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
import numpy as np
list_of_dates = [
"2019-11-20",
"2020-01-02",
"2020-02-05",
"2020-03-10",
"2020-04-16",
"2020-05-01",
]
employees = ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry", "Kevin"]
salary = [200, 400, 300, 500, 600, 300]
df = pd.DataFrame(
{"Name": employees, "Joined date": pd.to_datetime(list_of_dates), "Salary": salary}
)
def set_values(row, value):
return value[row]
map_dictionary = {200: "Low", 300: "LOW", 400: "MID", 500: "HIGH", 600: "HIGH"}
df["Salary_Range"] = df["Salary"].apply(set_values, args=(map_dictionary,))
print(df)
출력:
Name Joined date Salary Salary_Range
0 Hisila 2019-11-20 200 Low
1 Shristi 2020-01-02 400 MID
2 Zeppy 2020-02-05 300 LOW
3 Alina 2020-03-10 500 HIGH
4 Jerry 2020-04-16 600 HIGH
5 Kevin 2020-05-01 300 LOW
여기에서는df.apply()
를 사용하여 모든 행에 적용되는set_values()
함수를 정의합니다. 이 함수는 해당 행의Saryary
열 값에 따라Salary_Range
열의 각 행 값을 설정합니다. 우리는Salary
열에 값이 주어진 행에 대해Salary_Range
열의 값이 될 것을 할당하기 위해map_dictionary
를 만듭니다. 이 방법은 새로운 열에 대해 많은 옵션이있을 때 훨씬 더 많은 유연성을 제공합니다.
Pandas의 주어진 조건에 따라 새로운DataFrame
열을 생성하는pandas.Series.map()
pandas.Series.map()
을 사용하여 새로운DataFrame
을 만들 수도 있습니다 Pandas에서 주어진 조건을 기반으로 한 열. 이 메소드는 Series
에 요소별로 적용되며 사전, 함수 또는 Series
가 될 수있는 입력을 기반으로 한 열의 값을 다른 열에 맵핑합니다.
import pandas as pd
import numpy as np
list_of_dates = [
"2019-11-20",
"2020-01-02",
"2020-02-05",
"2020-03-10",
"2020-04-16",
"2020-05-01",
]
employees = ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry", "Kevin"]
salary = [200, 400, 300, 500, 600, 300]
df = pd.DataFrame(
{"Name": employees, "Joined date": pd.to_datetime(list_of_dates), "Salary": salary}
)
map_dictionary = {200: "Low", 300: "LOW", 400: "MID", 500: "HIGH", 600: "HIGH"}
df["Salary_Range"] = df["Salary"].map(map_dictionary)
print(df)
출력:
Name Joined date Salary Salary_Range
0 Hisila 2019-11-20 200 Low
1 Shristi 2020-01-02 400 MID
2 Zeppy 2020-02-05 300 LOW
3 Alina 2020-03-10 500 HIGH
4 Jerry 2020-04-16 600 HIGH
5 Kevin 2020-05-01 300 LOW
새 열Salary_Range
를 작성하고map_dictionary
의 키-값 쌍에 따라 열의 각 행 값을 설정합니다.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn관련 문장 - Pandas DataFrame Column
- Pandas DataFrame 열 헤더를 목록으로 가져 오는 방법
- Pandas DataFrame 열을 삭제하는 방법
- Pandas 에서 DataFrame 열을 Datetime 으로 변환하는 방법
- Pandas 열의 합계를 얻는 방법
- Pandas DataFrame 열의 순서를 변경하는 방법
- Pandas에서 DataFrame 열을 문자열로 변환하는 방법