이전 글에서는 df['칼렴명'] = "입력할 값" 또는 df['칼럼명'] = list(or array) 로 데이터프레임에 새로운 칼럼을 추가하는 방법에 대해 살펴보았는데요, 이번 글에서는 assign() 함수로 새로운 칼럼을 추가하는 방법에 대해서 설명하도록 하겠습니다.
- assign() : 데이터프레임에 새로운 칼럼 추가하기
assign() 함수는 데이터프레임에 새로운 열을 추가해주는 함수인데요, 먼저, 아래와 같은 데이터프레임(df)이 있다고 가정해보겠습니다.
item count price rating
0 coffee 1 3000 4.5
1 juice 5 4000 3.0
2 ade 2 5000 4.0
3 milk 1 3000 2.5
4 tea 3 4000 3.0
5 water 2 1000 4.5
1) 동일한 값 추가하기
assign() 함수는 assign(칼럼명 = '입력데이터') 와 같이 사용하면 되는데요, '입력데이터'에는 문자열, 숫자, 리스트, array 모두 가능합니다.
한편, 동일한 값을 추가하기 위해선 '입력데이터'에 문자열 또는 숫자를 입력하면 되는데요, 'category' 라는 새로운 칼럼명에 'drink' 라는 동일한 값을 추가해보겠습니다.
df = df.assign(category = 'drink')
위와 같이 입력하고 데이터프레임을 출력하면 다음과 같이 출력됩니다.
item count price rating category
0 coffee 1 3000 4.5 drink
1 juice 5 4000 3.0 drink
2 ade 2 5000 4.0 drink
3 milk 1 3000 2.5 drink
4 tea 3 4000 3.0 drink
5 water 2 1000 4.5 drink
그 결과, 'category' 라는 새로운 칼럼이 추가되었고, 'drink' 라는 동일한 데이터가 입력되었음을 확인할 수 있습니다.
2) 각각 다른 값 추가하기 - array / list
한편, 동일하지 않고 행마다 다른 값을 추가하기 위해선 array와 list를 이용하면 되는데요, 아래와 같은 array와 list가 있다고 가정해보겠습니다.
arr1 = np.array([1,2,3,4,5,6])
list1 = [50,45,40,35,30,25]
그리고나서 assign 함수를 사용하여 assign(칼럼명 = array) 또는 assign(칼럼명 = list) 과 같이 입력하여 추가해보겠습니다.
df = df.assign(rank=arr1)
df = df.assign(score=list1)
display(df)
item count price rating category rank score
0 coffee 1 3000 4.5 drink 1 50
1 juice 5 4000 3.0 drink 2 45
2 ade 2 5000 4.0 drink 3 40
3 milk 1 3000 2.5 drink 4 35
4 tea 3 4000 3.0 drink 5 30
5 water 2 1000 4.5 drink 6 25
그 결과, 새로운 칼럼이 잘 추가되었음을 볼 수 있습니다. 이때 주의할 점이 있는데요, 추가할 array와 list의 길이가 데이터프레임의 행의 개수와 동일해야 한다는 것입니다. 만약 동일하지 않으면 에러가 난답니다.
- assign() : 데이터프레임에 여러 개의 칼럼 한 번에 추가하기
한편, assign() 함수의 가장 큰 장점은 코드 한 줄로 여러 개의 칼럼을 한 번에 추가할 수 있다는 것인데요,
위에서 일일이 추가한 것들을 아래와 같이 한 번에 추가할 수 있습니다.
df = df.assign(category = 'drink', rank=arr1, score=list1)
그리고나서 데이터프레임을 출력하면 아래와 같이 모두 추가된 데이터프레임을 확인할 수 있습니다.
item count price rating category rank score
0 coffee 1 3000 4.5 drink 1 50
1 juice 5 4000 3.0 drink 2 45
2 ade 2 5000 4.0 drink 3 40
3 milk 1 3000 2.5 drink 4 35
4 tea 3 4000 3.0 drink 5 30
5 water 2 1000 4.5 drink 6 25
'BLOG > 데이터분석' 카테고리의 다른 글
[데이터분석] plotly : 데이터프레임을 이용하여 데이터 간의 변화를 비교하는 그래프 만들기 (0) | 2021.03.15 |
---|---|
[데이터분석] plotly : 막대 그래프 간단하게 만드는 방법 (0) | 2021.03.15 |
[데이터분석] 데이터프레임 : 칼럼(열) 간단하게 추가하는 방법 (0) | 2021.03.15 |
[데이터 분석] 빈 데이터 프레임(dataframe) 만드는 방법 (0) | 2021.03.11 |
[데이터분석] matplotlib 그래프 : x축 텍스트 회전하는 방법 - rotation (0) | 2021.03.11 |