[Python] Pandas DataFrame 첫 행에 데이터 삽입 방법 (How to nsert First Row)

2022. 5. 23. 22:11코딩/Python

반응형

안녕하세요. 코딩왕 코주부입니다.

 

오늘은 지난 포스팅에 이어,

Python Pandas DataFrame에 첫 번째 행을 삽입하는 방법에 대해 정리해보았습니다.

 

정말 간단하니 한 번 해보세요!!

 

오늘의 목표입니다.

 

지난 시간에 이용했던 car.csv 파일의 첫 번째 행 자리에

30살의 남자 Kim이 소유하고 있는 포르쉐 911 타르가 4S 데이터를 추가해보겠습니다.

 

(서른 살에 포르쉐 911 타르가 라니.. 정말 부럽네요!)

 

우선 df 데이터프레임 부터 준비해줍니다.

import pandas as pd
df = pd.read_csv('car.csv')
print(df)
     Name     Sex  Age                 Car
0     Sam  Female   20           Benz S550
1     Sam  Female   20            BMW 330i
2   James    Male   25  Chevrolet Corvette
3   Brian    Male   32        Ford Mustang
4    Elon    Male   31             Audi A6
5   Emily  Female   24           Volvo V60
6   Harry    Male   21            BMW 420d
7    Paul    Male   21            Benz G63
8    Paul    Male   21           Volvo V40
9    Paul    Male   21            BMW 520d
10    Amy  Female   36             Audi TT
11   John    Male   34             Audi R8
12   John    Male   34        Ford Mustang
13   John    Male   34            BMW 520d

 

'car.csv' 파일을 불러와서 df가 준비되었으면,

원하는 Data 를 df의 -1 인덱스에 define 합니다.

 

df.loc[-1] = 리스트(list) or 튜플(tuple)

 

을 실행하면 df의 가장 하단: -1 인덱스에 해당 데이터가 갖다 붙습니다.

df.loc[-1] = ['Kim', 'Male', '30', 'Porsche 911 Targa 4S']
print(df)
	Name	Sex	Age	Car
0	Sam	Female	20	Benz S550
1	Sam	Female	20	BMW 330i
2	James	Male	25	Chevrolet Corvette
3	Brian	Male	32	Ford Mustang
4	Elon	Male	31	Audi A6
5	Emily	Female	24	Volvo V60
6	Harry	Male	21	BMW 420d
7	Paul	Male	21	Benz G63
8	Paul	Male	21	Volvo V40
9	Paul	Male	21	BMW 520d
10	Amy	Female	36	Audi TT
11	John	Male	34	Audi R8
12	John	Male	34	Ford Mustang
13	John	Male	34	BMW 520d
-1	Kim	Male	30	Porsche 911 Targa 4S

 

우리 흔히 알기로는 -1은 0보다 작은 숫자이지요?

그럼, index를 오름차순으로 정렬한다면 -1, 0, 1 순으로 정렬될 것만 같단 말이죠!

 

df.sort_index() 함수를 활용하여 index를 오름차순으로 정렬해줍니다.

df = df.sort_index()를 명령하여도 되고, df.sort_index(inplace = True)면 df를 다시 정의내리지 않아도 됩니다.

df = df.sort_index()
## df.sort_index(inplace = True)
print(df)
      Name     Sex Age                   Car
-1     Kim    Male  30  Porsche 911 Targa 4S
 0     Sam  Female  20             Benz S550
 1     Sam  Female  20              BMW 330i
 2   James    Male  25    Chevrolet Corvette
 3   Brian    Male  32          Ford Mustang
 4    Elon    Male  31               Audi A6
 5   Emily  Female  24             Volvo V60
 6   Harry    Male  21              BMW 420d
 7    Paul    Male  21              Benz G63
 8    Paul    Male  21             Volvo V40
 9    Paul    Male  21              BMW 520d
 10    Amy  Female  36               Audi TT
 11   John    Male  34               Audi R8
 12   John    Male  34          Ford Mustang
 13   John    Male  34              BMW 520d

 

인덱스를 정렬하고 나니,, 눈에 거슬리는게 하나 있습니다.

원하는 데이터는 첫 째 행에 삽입하였으나,

인덱스가 0부터 시작하는게 좋은데 -1 부터 시작하죠.

 

그럴 땐 df.reset_index(drop = True) 함수를 사용해봅니다.

마찬가지로 df.reset_index(drop = True, inplace = True)를 이용하면 대입하지 않아도 간단하게 사용 가능합니다.

df = df.reset_index(drop = True)
## df.reset_index(drop = True, inplace = True)
print(df)
     Name     Sex Age                   Car
0     Kim    Male  30  Porsche 911 Targa 4S
1     Sam  Female  20             Benz S550
2     Sam  Female  20              BMW 330i
3   James    Male  25    Chevrolet Corvette
4   Brian    Male  32          Ford Mustang
5    Elon    Male  31               Audi A6
6   Emily  Female  24             Volvo V60
7   Harry    Male  21              BMW 420d
8    Paul    Male  21              Benz G63
9    Paul    Male  21             Volvo V40
10   Paul    Male  21              BMW 520d
11    Amy  Female  36               Audi TT
12   John    Male  34               Audi R8
13   John    Male  34          Ford Mustang
14   John    Male  34              BMW 520d

짜잔~!!

 

인덱스도 0부터 시작하게 되었고,

원하는 데이터도 첫 번째 행에 삽입 성공하였습니다!

 

이런 식으로 pandas의 .loc & .sort_index & .reset_index 의 세 가지 함수를 활용하여

 

첫 번째 행 자리에 새로운 행을 삽입할 수 있습니다.

 

많은 도움되셨으면 좋겠네요^^

 

그럼 이만😎

반응형