본문 바로가기
파이썬/파이썬 데이터프레임

파이썬 (Python) Dataframe 기초 강좌 #6 - iloc 누적 합 구하기

by 이박수 2024. 9. 27.

 

지난 포스팅에 이어서 데이터프레임에서 iloc를 어느 경우에 활용하는지 알아보고, 사용법을 익혀보자. 오늘부터는 포스팅의 내용을 조금 짧게 진행하려고 한다. 너무 많은 내용을 담으려고 하다 보니 나도 지치고, 효율이 별로 좋지 않은 것 같아 내용은 짧고 간략하게 예제 중심으로 진행하고자 한다.

 

파이썬 데이터프레임 iloc의 개념과 기초

데이터프레임을 다룰 때 iloc의 경우 보이지 않는 인덱스를 기준으로 데이터프레임에 접근한다고 설명하였다. 

기억나는가? 기억이 나지 않는다면 지난 포스팅을 보고 오자

 

iloc 기본 내용 확인하기

 

파이썬 (Python) Dataframe 기초 강좌 #5 - loc와 iloc 사용법과 차이점

파이썬(Python) 데이터프레임(Dataframe) iloc와 index오늘은 데이터프레임에서 iloc와 loc의 사용법과 차이점에 대하여 이야기 해보려고 한다.지난 시간 계속 loc에 대한 설명을 했었다. loc의 경우 인덱스

flex-link.co.kr

 

예제파일은 아래에서 다운로드하도록 하자.

sample4-1.xlsx
0.01MB

 

파일을 열어보면 아래와 같은 데이터들이 들어 있을 것이다.

데이터프레임/iloc

 

인덱스의 경우 숫자가 아닌 문자로 채워져 있다 

여기에 새로운 열을 추가하고, 이 열의 이름은 SIC로 하고 0으로 초기화하자.

열을 추가하는 것은 아주 간단하다.

import pandas as pd

df = pd.read_excel("sample4-1.xlsx", engine="openpyxl", na_values= " ", index_col=0)

df['SIC']= 0 

print(df)

데이터프레임/iloc

 

데이터프레임 iloc를 활용한 누적 합 계산 방법

 

SIC 열이 추가되었고, 모든 행에 0이 들어간 것을 확인할 수 있다. 이제 이 SIC 행에 iloc를 활용하여 값을 채워보자.

SIC 행에는 IC의 값을 누적하여 저장할 계획이다. 즉, 첫 번째 행의 IC 값이 4이고, 두 번째 행의 IC 값도 4이므로, SIC 값은 4, 8 , 13 이런 식으로 채워질 것이다.

 

이러한 경우 iloc를 사용하면 된다.

import pandas as pd

df = pd.read_excel("sample4-1.xlsx", engine="openpyxl", na_values= " ", index_col=0)

df['SIC']= 0 


count =0

for i in df['IC'].to_list():
    
    if count == 0 :
        df.iloc[count,11] = i
        pass
    
    df.iloc[count,11] = df.iloc[count-1, 11] + i    
    
    count += 1

print(df)

 

데이터프레임 iloc를 활용한 누적 합 소스 코드 설명

iloc를 사용하기 위해서는 인덱스 정수 값으로 접근해야 하지만 이는 시스템에서 자동으로 할당되는 거라 직접 접근할 수 없다. 그래서 count라는 변수를 선언하고 0으로 초기화한다. 이 count 변수를 인덱스처럼 사용하면 되는 것이다.

 

그래서 데이터프레임의 IC 열을 가지고 와서 리스트로 변환하여 for 문에 넣어 주었다. 이 부분은 나중에 따로 다룰 예정이다.

이렇게 하면 데이터프레임의 IC 열의 행만큼 반복이 진행되므로 우리는 행이 몇 개인지 알 필요가 없다. 그냥 시작을 0부터 해주고 for 문이 끝날 때 +1 해주면 된다.

 

데이터프레임/pandas/iloc

 

간단하지만 헷갈릴 수 있으니 잘 한번 고민해 보고 따라 해 보길 바란다

 

마무리

오늘은 데이터프레임에서 iloc를 활용하여 값을 증가시키는 예제를 다루어 보았다.

이전 행의 데이터를 가져와 현재 행의 값을 더하여 값을 넣어주는 코드이다. 코드의 의미를 잘 이해하고, iloc를 어떤 상황에서 사용하는지 기억해 두자.

다음에는 iloc를 활용한 다른 예제를 다루도록 하겠다.