본문 바로가기
파이썬 (Python)/Pandas

Python Panda Column 삭제 및 Data 수치 합산하는 방법

by ★√★ 2021. 6. 2.

안녕하세요 이번 포스팅은 Python의 Pandas 패키지를 이용한 DataFrame 함수를 활용하는 방법 중에 Column을 삭제하는 코드 및  DataFrame 화 한 Data Table을 한꺼번에 합산하는 방법에 대해서 설명 드리도록 하겠습니다. 

 

Column-삭제-Data-수치-합산
Column-삭제-Data-수치-합산

 

코드 구현을 위한 Source Data DataFrame 화 하기

 

: 일단 DataFrame을 구현하기 위한 Source Data를 구현해보도록 하겠습니다. 이전 포스팅에서 설명드린 것처럼 DataFrame을 구현하기 위해서는 Dictionary로 구현되어 있는 Data Source가 필요합니다. 아래와 같이 예시 Data를 구현해보도록 하겠습니다. (참고로 이 부분은 이전 포스팅에서 똑같은 Source Data를 사용하고 있다는 걸 참조해주세요.)

 

# 필요한 패키지를 먼저 선언을 합니다.
import pandas as pd
import numpy as np

# 예시 Source Data를 구현하여, pandas를 이용하여 DataFrame화 시키는 코드입니다.
data = {"names": ["Kim", "Park", "Jang", "Kim", "MC-Yoo"],
"NumberofYear" : [2014, 2015, 2017, 2018, 2019],
"Value": [90, 86, 77, 99, 75]}
df = pd.DataFrame(data, columns=["names", "NumberofYear", "Value", "remarks"],
index=["first_row", "second_row", "third_row", "forth_row", "fifth_row"])

▼ 위의 Data는 예시로 한 것이고, Source Data는 원하시는 내용으로 다시 수정해서 구현하셔도 됩니다.

 

Column 삭제 코드

 

: 위에 선언한 예제 Data에 Column 이름을 수정하도록 하겠습니다. 왜냐하면 설명하기 편하게 Column을 수정하려고 합니다. Column 수정 및 원하는 Column을 어떻게 삭제할 수 있는지에 대한 코드를 구현해보도록 하겠습니다. 특정 열을 Drop 하는 코드를 작성하는 과정에서 인지하셔야 하는 항목이, axis Value인데요, axis value가 1이면 열방향으로 애기하는 것이고 0이명 행 방향을 애기하는 것입니다. Column1을 삭제하는 코드와 Column2, 3을 삭제하는 코드 각각 예제로 짜보도록 하겠습니다. 

 

#Column1 을 삭제하는 코드
print(df.drop('Column1', axis = 1))

#Column2,3 을 한꺼번에 삭제하는 코드
print(df.drop(['Column2','Column3'], axis = 1))

 

▼  위 코드에서 보시면, axis Value를 '1'로 설정을 한 이유는, 열을 삭제하기 위해서 '1'로 설정을 한 것입니다.

 

 코드를 구현하여 실행을 해보면 아래와 같이 Column1이 사라진 DataFrame 하나랑, Column2, 3 둘 다 사라지 DataFrame 을 확인 하실 수 있을 겁니다. 

    Column2   Column3   Column4
0  0.149871 -0.335126 -0.213042
1  0.376008  0.716675 -1.501571
2  0.069549  2.018636 -0.599934
3  1.185441 -1.038136  0.619836
4  0.525625  1.008754  0.603873
5 -0.523666 -1.011979  0.223201

    Column1   Column4
0  0.465012 -0.213042
1  0.099033 -1.501571
2 -0.851347 -0.599934
3  0.657299  0.619836
4  0.753904  0.603873
5 -0.341150  0.223201

 

 

DataFrame화 한 Data 한꺼번에 합산하는 방법

 

: 이어서 DataFrame화 한 Data Table을 한꺼번에 합산하는 방법에 대해서 코드를 구현해보도록 하겠습니다. 합산하는 방법의 Concept은 열 방항과 행 방향 이렇게 2개로 진행하도록 하겠습니다. 여기에서 하나 더 고려해야하는 항목이 있습니다. 그 항목은 각 Value 속성겂이 NaN인지를 확인해야 하는 것입니다.  만약 NaN가 있을 경우에는 합산이 되지 않기 때문입니다. 물론 string Type인지도 미리 검토를 해야합니다.

 

▼   일단 NaN 대한 사항을 고려하여 NA 항목은 skip 하고 다른 항목만 더할 수 있는 코드로 구현하도록 하겠습니다. 

# 행 방향으로 합산을 구하는 코드 구현
print(df.sum(axis=0))

# 열 방향으로의 합산을 구하는 코드 구현
print(df.sum(axis=1))

# NaN 값일 경우에는 Skip하고 합산을 진행하라는 코드
df.sum(axis=1, skipna=False)

 

 제가 선언한 DataFrame 예제에는 NaN 값이 없기 때문에 동일한 값이 나올 것이며, 만약 NaN가 있게 되면, Skip Value를 선언하지 않은 코드에 대해서는 에러가 발생하게 될겁니다. 위 코드를 구현한 결과 값은 아래와 같습니다. 

 

Column1    0.782751
Column2    1.782829
Column3    1.358823
Column4   -0.867636
dtype: float64

0    0.066716
1   -0.309855
2    0.636905
3    1.424440
4    2.892156
5   -1.653594
dtype: float64

 

  그리고 각 Column 별 및 행 별 합산 내용도 출력 할 수 있는데요. 이 부분은 특정 Column이나 행을 지정하여 코드를 구현하시면 됩니다. 아래 코드는 "Column1" 이라는 Column의 합과 Index가 '0'인 행의 합을 구하는 것입니다. 각각 코드를 구현해서 설명 드리도록 하겠습니다.

# Column1 열의 모든 행의 Value를 합산하는 코드n
df['Column1'].sum()

# Index가 '0'인 행의 총 Column에 기재된 Value의 합산 코드
df.loc[0].sum()

 

  위 코드를 구현을 해보면 아래와 같이 결과값을 확인 하실 수 있습니다. 각각 코드를 통해서 합산이 되는 걸 확인 하실 수 있을 겁니다. 

# 특정 Column에 있는 모든 행의 값을 합산
0.413992444771662

# 특정 행에 있는 모든 열의 값을 합산
-1.1616195090165338

 

 이상입니다. 지금까지 Python의 Pandas 패키지를 이용한 DataFrame 함수를 활용하는 방법 중에 Index를 날짜 간격으로 선언, nan 값 Sort 하는 방법에 대해서 포스팅을 작성하였습니다. 위 코드를 이해하셨으면 실제로 파이 참에서 실행을 해보시는 걸 추천드립니다. 그럼 최고의 프로그래머가 되는 데 조금이나 도움이 되었으면 좋겠습니다. 이만 마무리하도록 하겠습니다. 감사합니다.

 

[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁드립니다. 검토 후 수정 및 삭제 조치하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을 때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.] 

 

 

관련 다른 글

728x90

댓글