Python Pandas 데이터프레임에 상수 값으로 열 추가하기
df[새로운_열] = 상수
가장 간단하고 직관적인 방법입니다. 새로운 열 이름을 지정하고, 그 값으로 상수를 할당합니다.
import pandas as pd
df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
# 새로운 열 "C"를 추가하고 값을 10으로 설정
df["C"] = 10
print(df)
# 결과
# A B C
# 0 1 4 10
# 1 2 5 10
# 2 3 6 10
df.assign(새로운_열=상수)
assign()
메서드를 사용하여 새로운 열을 추가할 수 있습니다. 기존 열을 참조하여 새로운 열을 생성하는 경우 유용합니다.
df = df.assign(새로운_열=lambda x: x["A"] + x["B"])
print(df)
# 결과
# A B 새로운_열
# 0 1 4 5
# 1 2 5 7
# 2 3 6 9
df.insert(loc, 새로운_열, 상수)
insert()
메서드를 사용하여 특정 위치에 새로운 열을 삽입할 수 있습니다.
df.insert(1, "새로운_열", 10)
print(df)
# 결과
# 새로운_열 A B
# 0 10 1 4
# 1 10 2 5
# 2 10 3 6
df["새로운_열"] = np.full(df.shape[0], 상수)
NumPy 라이브러리를 사용하여 상수 값으로 채워진 배열을 생성하고 새로운 열로 할당할 수 있습니다.
import numpy as np
df["새로운_열"] = np.full(df.shape[0], 10)
print(df)
# 결과
# A B 새로운_열
# 0 1 4 10
# 1 2 5 10
# 2 3 6 10
df["새로운_열"] = pd.Series([상수] * df.shape[0])
Pandas Series 객체를 사용하여 상수 값으로 채워진 Series를 생성하고 새로운 열로 할당할 수 있습니다.
df["새로운_열"] = pd.Series([10] * df.shape[0])
print(df)
# 결과
# A B 새로운_열
# 0 1 4 10
# 1 2 5 10
# 2 3 6 10
선택 가이드
- 간단하고 빠른 방법:
df[새로운_열] = 상수
- 기존 열을 참조하여 새로운 열 생성:
df.assign()
- 특정 위치에 열 삽입:
df.insert()
예제 코드
import pandas as pd
import numpy as np
df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
# 방법 1: df[새로운_열] = 상수
df["C"] = 10
# 방법 2: df.assign(새로운_열=상수)
df = df.assign(D=lambda x: x["A"] + x["B"])
# 방법 3: df.insert(loc, 새로운_열, 상수)
df.insert(1, "E", 10)
# 방법 4: df["새로운_열"] = np.full(df.shape[0], 상수)
df["F"] = np.full(df.shape[0], 10)
# 방법 5: df["새로운_열"] = pd.Series([상수] * df.shape[0])
df["G"] = pd.Series([10] * df.shape[0])
print(df)
# 결과
# A B C D E F G
# 0 1 4 10 5 10 10
# 1 2 5 10 7 10 10
# 2 3 6 10 9 10 10
Pandas 데이터프레임에 상수 값으로 열 추가하기: 대체 방법
loc 속성 사용
loc
속성을 사용하여 특정 위치에 상수 값을 할당할 수 있습니다.
df.loc[:, "새로운_열"] = 상수
# 예시
df.loc[:, "H"] = 10
print(df)
# 결과
# A B C D E F G H
# 0 1 4 10 5 10 10 10
# 1 2 5 10 7 10 10 10
# 2 3 6 10 9 10 10 10
iat 속성 사용
df.iat[행_위치, 열_위치] = 상수
# 예시
df.iat[0, 8] = 20
print(df)
# 결과
# A B C D E F G H
# 0 1 4 10 5 10 10 20
# 1 2 5 10 7 10 10 10
# 2 3 6 10 9 10 10 10
apply() 메서드 사용
apply()
메서드를 사용하여 열에 함수를 적용하고 결과를 새로운 열로 할당할 수 있습니다.
def add_constant(x):
return x + 상수
df["새로운_열"] = df["기존_열"].apply(add_constant)
# 예시
df["I"] = df["A"].apply(add_constant, 상수=10)
print(df)
# 결과
# A B C D E F G H I
# 0 1 4 10 5 10 10 20 11
# 1 2 5 10 7 10 10 10 12
# 2 3 6 10 9 10 10 10 13
lambda 함수 사용
lambda
함수를 사용하여 간단한 함수를 정의하고 assign()
메서드에 전달하여 새로운 열을 생성할 수 있습니다.
df = df.assign(새로운_열=lambda x: x["기존_열"] + 상수)
# 예시
df = df.assign(J=lambda x: x["A"] + 10)
print(df)
# 결과
# A B C D E F G H I J
# 0 1 4 10 5 10 10 20 11 11
# 1 2 5 10 7 10 10 10 12 12
# 2 3 6 10 9 10 10 10 13 13
주의 사항:
loc
속성과iat
속성을 사용할 때는 행과 열의 위치를 정확하게 알고 있어야 합니다.apply()
메서드와lambda
함수를 사용할 때는 함수 정의가 정확해야 합니다.
선택 가이드
다양한 방법 중 상황에 맞는 적절한 방법을 선택하는 것이 중요합니다.
- 특정 위치에 값 할당:
loc
속성 또는iat
속성 - 기존 열을 참조하여 새로운 열 생성:
apply()
메서드 또는lambda
함수 - 데이터프레임 크기가 크거나 복잡한 계산 필요:
assign()
메서드
python pandas dataframe