개발 꿀팁/PYTHON

파이썬 데이터 분석 - 데이터 업데이트

Jammie 2022. 11. 23. 12:34
반응형

대량 데이터를 분석하는 동안 행과 열을 추가하거나 일부 행과 열을 삭제할 수 있습니다.오늘은 파이썬(python)에서 데이터 박스를 업데이트하는 방법을 알려드리겠습니다

참고: 이 텍스트에서 사용하는 데이터 상자 date_frame:

      ID                    name                          gende                       age                       height
 10000001            윤일범                        남자                           17                          1.78                   
 10000002            윤니나                       여자                            18                          1.68                 
 10000003            저우잉후이                여자                            20                        1.62                  
 10000004             윤자항                      여자                            19                        1.73                   
 10000005            윤택곤                      남자                            18                        175                                   10000006                이가민                    여자                             16                        160                  
10000007               자두저우                  남자                              17                      1.82               
10000008               리자하오                   남자                               18                      180   

 

1 데이터 상자 끝에 줄 추가
  
원본 데이터 상자에 행을 추가하려면 먼저 행에 해당하는 사전을 정의할 수 있으며 구체적인 문구는 다음과 같습니다

new_row = {'ID':['1000009'],
'name': ['당시시'],
'gender': ['여자''],
'age':[21],
'height':[1.68]
}

참고: 형식은 원본 데이터 상자와 일치해야 합니다.새로 추가된 행을 append 함수로 원본 데이터 상자에 추가합니다. 구체적인 문구는 다음과 같습니다

new_row1 = pd.DataFrame(new_row)  
date_frame.append(new_row1)

얻어진 결과는 다음과 같다.

            ID                    name                       gende                       age                       height

  10000001            윤일범                        남자                           17                        1.78  

1    10000002            윤니나                       여자                            18                         1.68                 
2   10000003            저우잉후이                여자                            20                        1.62                  
3    10000004             윤자항                       여자                           19                        1.73                   
4    10000005            윤택곤                       남자                           18                        175           

5    10000006              이가민                     여자                            16                         160                  
6     10000007            자두저우                 남자                             17                        1.82               
7     10000008            리자하오                  남자                            18                        180   

0     10000009          당시시                      여자                              21                        1.68

 

2 데이터 상자에 열 삽입하기
  
데이터 상자에 행을 추가할 수 있으므로 데이터 상자에 열을 추가할 수도 있습니다.insert 함수로 데이터 상자의 임의의 위치에 열을 추가할 수 있습니다.예를 들어 데이터 상자의 첫 번째 열에 새로운 열을 삽입하고 싶다면 python에서 다음과 같은 문장을 실행할 수 있습니다

date_frame.insert(0, 'calss', ['class1','class1','class1','class1','class2','class2','class2','class2','class2'])

얻어진 결과는 다음과 같다

      caiss             ID                    name                       gende                       age                       height

  caiss1         10000001            윤일범                        남자                           17                        1.78  

1    caiss1        10000002            윤니나                       여자                            18                         1.68                 
2    caiss1         10000003            저우잉후이                여자                            20                        1.62                  
3    caiss1         10000004             윤자항                       여자                           19                        1.73                   
4    caiss2         10000005            윤택곤                       남자                           18                        175           

5    aiss2           10000006              이가민                     여자                            16                         160                  
6    caiss2         10000007            자두저우                 남자                             17                        1.82               
7    caiss2         10000008            리자하오                  남자                            18                        180   

0    caiss2         10000009          당시시                      여자                              21                        1.68

 

이 중.insert의 0은 새로 삽입된 열의 위치를 나타내고, 'calss'는 새로 추가된 열의 이름을 나타내고, ['class1', ..., 'class2']는 새로 추가된 열의 내용을 나타내며, 새로 추가된 열은 원래 데이터 상자의 길이와 일치해야 합니다.데이터 상자에 행과 열을 추가할 수 있으므로 데이터 상자에서 행과 열을 삭제할 수도 있습니다.먼저 데이터 상자에서 행을 삭제해 보겠습니다.
  
  

3 데이터 상자의 행 삭제
  
drop 함수로 한 행을 삭제할 수도 있고 여러 행을 삭제할 수도 있습니다.먼저 첫 번째 줄을 삭제하는 구체적인 코드를 살펴보겠습니다.

date_frame.drop([0])

얻어진 결과는 다음과 같다

    caiss             ID                    name                       gende                       age                       height

1    caiss1        10000002            윤니나                       여자                            18                         1.68                 
2    caiss1         10000003            저우잉후이                여자                            20                        1.62                  
3    caiss1         10000004             윤자항                       여자                           19                        1.73                   
4    caiss2         10000005            윤택곤                       남자                           18                        175           

5    aiss2           10000006              이가민                     여자                            16                         160                  
6    caiss2         10000007            자두저우                 남자                             17                        1.82               
7    caiss2         10000008            리자하오                  남자                            18                        180   

 

.drop([0])은 인덱스 번호가 0(첫 번째 줄)인 행을 삭제함을 나타냅니다.다른 행을 삭제하려면 0을 해당 행의 인덱스 번호로 변경할 수 있습니다.다음으로 첫 번째 줄과 다섯 번째 줄을 삭제하는 구체적인 코드를 살펴보겠습니다

date_frame.drop([0,4])

얻어진 결과는 다음과 같다

    caiss             ID                    name                       gende                       age                       height

1    caiss1        10000002            윤니나                       여자                            18                         1.68                 
2    caiss1         10000003            저우잉후이                여자                            20                        1.62                  
3    caiss1         10000004             윤자항                       여자                           19                        1.73                   
 
5    aiss2           10000006              이가민                     여자                            16                         160                  
6    caiss2         10000007            자두저우                 남자                             17                        1.82               
7    caiss2         10000008            리자하오                  남자                            18                        180   

 

drop([0,4])는 인덱스 번호가 0과 4인 행을 삭제함을 나타내며 실제로 첫 번째 및 다섯 번째 행을 나타냅니다.더 많은 행을 삭제해야 하며, 두 행을 삭제하는 코드를 참조할 수 있습니다.
  
  

4 데이터 상자의 열 삭제
  
마찬가지로 drop 함수로 열을 삭제할 수 있습니다.먼저 name 열을 삭제하는 구체적인 코드를 살펴봅니다

date_frame.drop(columns = 'name')
date_frame.drop('name', axis = 1) #axis = 1은 열에 대한 작업을 나타냅니다.

얻어진 결과는 다음과 같다

     caiss             ID                           gende                       age                       height

  caiss1         10000001                  남자                           17                        1.78  

1    caiss1        10000002                 여자                            18                         1.68                 
2    caiss1         10000003                여자                            20                        1.62                  
3    caiss1         10000004                 여자                           19                        1.73                   
4    caiss2         10000005                 남자                           18                        175           

5    aiss2           10000006                여자                            16                         160                  
6    caiss2         10000007                 남자                             17                        1.82               
7    caiss2         10000008                 남자                            18                        180   

0    caiss2         10000009               여자                              21                        1.68

 

name 열과 gender 열을 삭제하려면 다음과 같은 코드를 입력하면 됩니다

date_frame.drop(columns = ['name','gender'])
date_frame.drop(['name','gender'], axis = 1)

얻어진 결과는 다음과 같다

  caiss             ID                              age                       height

  caiss1         10000001                    17                        1.78  

1    caiss1        10000002                     18                         1.68                 
2    caiss1         10000003                     20                        1.62                  
3    caiss1         10000004                     19                        1.73                   
4    caiss2         10000005                    18                        175           

5    aiss2           10000006                     16                         160                  
6    caiss2         10000007                     17                        1.82               
7    caiss2         10000008                    18                        180   

0    caiss2         10000009                    21                        1.68

 

여러 열의 코드를 삭제하면 마찬가지로 두 열의 코드 삭제를 참조할 수 있습니다.
  
  

5 조건을 충족하는 행을 삭제합니다
  
18세 이상의 모든 기록을 삭제한다고 가정하면 파이썬에 다음과 같이 입력할 수 있습니다

date_frame.drop(index = (date_frame.loc[(date_frame.age>18)].index))

얻어진 결과는 다음과 같다

      caiss             ID                    name                       gende                       age                       height

1    caiss1        10000002            윤니나                       여자                            18                         1.68                 
4    caiss2         10000005            윤택곤                       남자                           18                        175           

5    aiss2           10000006              이가민                     여자                            16                         160                  
6    caiss2         10000007            자두저우                 남자                             17                        1.82               
7    caiss2         10000008            리자하오                  남자                            18                        180   

 

이 중 .loc[(date_frame.age>18)].index는 18세 이상의 인덱스를 나타냅니다.이로써 파이썬에서 데이터 박스를 변경하는 작업이 소개되었으니, 여러분은 데이터 박스를 다른 방식으로 조작할 수 있는지 아닌지를 연습할 수 있습니다

 

반응형