반응형
데이터 프레임 행(row) 추가하기
2022.05.19 - [self.python] - [python] loc , iloc 으로 행 데이터 접근하기
저번에 loc, iloc 으로 행 데이터 접근하는 방법을 공부해 봤었는데
그 때 만든 데이터 프레임을 활용해서 데이터 프레임에 행을 추가하는 방법에 대해 공부해보자.
import numpy as np
import pandas as pd
score = {'Year' : ['2016', '2017', '2018', '2019', '2020', '2021', '2022'],
'Mary': [90, 68, 70, 80, 92, 68, 78],
'Kate': [90, 68, 70, 80, 92, 68, 78],
'Mark': [39, 59, 60, 73, 84, 87, 92],
'Maxi': [83, 92, 71, 56, 79, 93, 85],
'Jess': [np.nan,0, 0, 0, 44, 74, 49]}
df = pd.DataFrame(score)
df
학생 5명의 어떤 과목의 16 ~ 22 년도의 점수를 데이터 프레임으로 만든것이라고 하자.
딕셔너리 append( ) 으로 행 추가하기
딕셔너리 형식으로 새로운 데이터 행을 만들어 기존의 데이터 프레임에 .append 를 하면 새로운 행을 추가할 수 있다.
학생 5명의 23년도 점수를 추가한다고 하자.
myDict = { # 추가할 데이터를 딕셔너리 타입으로 만든다
'Year' : '2023',
'Mary' : 80,
'Kate' : 80,
'Mark' : 80,
'Maxi' : 80,
'Jess' : 80
}
df_plus = df.append(myDict, ignore_index=True) # append를 사용하여 df 에 추가
df_plus
2023년도의 점수가 제대로 추가된 것을 확인할 수 있다.
concat 을 이용하여 데이터 프레임끼리 합쳐주기
concat 은 데이터 프레임끼리 합치고 싶을 때 사용하는 함수이다.
내가 추가하고 싶은 데이터를 데이터 프레임 형식으로 만들어 기존의 데이터 프레임에 concat 으로 붙여주는 방법도 있다.
myDict = {
'Year' : ['2023'],
'Mary' : [80],
'Kate' : [80],
'Mark' : [80],
'Maxi' : [80],
'Jess' : [80]
}
mydf = pd.DataFrame(myDict) # 데이터 프레임 형식으로 만들어줌
df_plus2 = pd.concat([df, mydf]) # concat 사용
df_plus2
새로운 데이터 행이 추가되었는데 행의 index 가 0 이다. 이것은 concat 할 때 ignore_index = True 를 해서 7 로 바꿀 수 도 있다.
df_plus2 = pd.concat([df, mydf], ignore_index=True)
df_plus2
*** 여기서 Year 를 index 로 사용하고 싶다면 set_index 로 index를 바꿔줄 수 있다. ***
df_plus3 = df_plus2.set_index(keys = ['Year'], inplace = False, drop = False)
df_plus3
Year를 index로 썼으니까 기존 열 Year는 지워버리고 싶다면 set_index의 인자 중 drop 을 True 값으로 바꿔주면 된다.
df_plus3 = df_plus2.set_index(keys = ['Year'], inplace = False, drop = True)
df_plus3
반응형
'self.python' 카테고리의 다른 글
[python] 데이터프레임 조건에 맞는 행 index 뽑아오기 - index (0) | 2022.05.30 |
---|---|
[python] isin() 사용해서 데이터 프레임에서 데이터 값으로 행 추출하는 방법 (0) | 2022.05.29 |
[python] 입력 받은 수를 이진수 변환 - 재귀함수 이용 (0) | 2022.05.20 |
[python] loc , iloc 으로 행 데이터 접근하기 (0) | 2022.05.19 |
[python] 데이터 프레임 열 순서 변경하는 방법 (0) | 2022.05.17 |
댓글