Python/Pandas

[Pandas] 데이터프레임 행/열 조회 & 인덱싱 / head(), tail(), sample() 함수

Jenny Noh 2023. 11. 10. 20:42

먼저 예시로 사용할 데이터 프레임을 생성해주겠습니다.

0에서 100 사이의 임의의 정수로 구성된 10x10 사이즈의 데이터프레임입니다.

Index는 [a, b, c, d, e, f, g, h, i, j], columns 값은 [A, B, C, D, E, F, G, H, I, J]로 설정해 주었습니다.

 

 


 

1. 열 값 읽어오기

① df[열이름] or df.열이름

하나의 열을 인덱스 값과 함께 반환할때 사용합니다. 

df['A']와 df.A는 동일한 표현입니다.

해당 형태로 불러오게 되면 해당 열은 Series 객체로 반환됩니다.

 

 

 

 

  ② df[[열 이름, 열이름, ...]]  

df[]안에 열 정보를 리스트 형태로 전달합니다.

복수개의 열을 반환할 수 있는 표현으로 반환값이 데이터 프레임 구조로 반환되기 때문에 보기에도 훨씬 편합니다.

 

 

🚨 주의!! 데이터 프레임은 열의 순서를 사용해서 조회 / 인덱싱 할 수 없습니다!!

하지만 열의 순서값을 이용해서 열 값을 반환해야하는 경우가 있습니다.

이때 사용하는 것이 df.columns 속성입니다. df.columns는 컬럼명을 ndarray로 반환합니다.

 

 

위와 같이 df[ ] df.columns[열 순서]로 열 이름을 반환한 값을 전달하면 열의 순서로 간접적으로 value를 추출할 수 있습니다.

 

 


 

 

2. 행 값 읽어오기

① df.loc[행 이름]  

df[행이름]으로도 행의 값을 불러올 수 있지만 이게 열을 불러오는건지 행을 불러오는건지 헷갈릴 수 있습니다.

그래서 행을 불러올 때는 df.loc[ ]을 사용합니다.

 

행의 이름을 리스트의 형태로 전달해서 복수개의 행 데이터를 반환할 수도 있습니다.

 

 

 


 

 

3. 행 인덱싱

앞서 열은 순서값으로 인덱싱할 수 없어서 df.columns 값으로 우회해서 인덱싱 해야한다고 했습니다.

반면 행은 순서값을 사용해서 인덱싱할 수 있습니다! 행의 이름과 순서값을 사용해서 행 값을 추출해 보겠습니다. 🙂👍

 

  ① df.loc[행 이름 : 행 이름]  

 

'a' 행부터 'c' 행까지 행 값을 슬라이싱 해 왔습니다.

이 때 주의할 점은 마지막 값인 'c'행도 포함해서 가져온다는 점입니다.

 

 

 

  ② df.iloc[행 순서 : 행 순서]  

행의 순서값으로 인덱싱 할 때는 df.iloc 속성을 사용합니다. 

iloc은 Index location을 나타냅니다.

행 이름으로 슬라이싱 할 때와는 다르게, 순서로 슬라이싱 할 때는 끝 값을 포함하지 않습니다.

 

 

 

 


4. 전체 DataFrame에서 임의의 행 추출

  ① df.head()  

head() 함수는 데이터프레임에서 상위 5개 행을 반환하는 함수입니다.

 

정수 값을 전달하면 그 정수값 개수만큼의 상위 행을 가져올 수 있습니다.

 

 

 

  ② df.tail()  

tail() 함수는 데이터프레임에서 하위 5개 행을 반환하는 함수입니다.

 

head() 함수와 마찬가지로 정수값을 전달하면 정수값 개수 만큼의 하위 행을 반환합니다.

 

 

 

  ③ df.sample()  

sample() 함수는 데이터프레임에서 임의의 행 한 개를 반환하는 함수입니다. 

head() 함수, tail() 함수와 마찬가지로 정수값을 전달하면 그 숫자 만큼의 임의의 행을 반환합니다.



 

 

 

끗!