2. DataFrame

김동웅·2021년 8월 19일
0

Pandas with python

목록 보기
2/23

- DataFrame

  • 2차원 배열구조
  • 행(Index) 과 열(Columns) 구조로 이루어져있다.
  • 2차원 벡터행렬이다.
  • 행인덱스(row inedx)와 열 이름(col name) 두가지 주소를 사용한다.

0. DataFrame 구조

		columns_0	columns_1	columns_2

index_0 	Data		Data		Data

index_1 	Data		Data		Data

index_2 	Data		Data		Data

1. DataFrame 만들기

import pandas as pd

df = pd.DataFrame(딕셔너리 객체)

ex) 딕셔너리 객체 -> DataFrame 변환

import pandas as pd

dict_data = {'c0':[1,2,3],
             'c1':[4,5,6],
             'c2':[7,8,9]
             }
             
df = pd.DataFrame(dict_data)

print(df)

실행결과

	c0	        c1		c2

0 	1		4		7

1 	2		5		8

2 	3		6		9

2. 행 인덱스/ 열 이름 설정

  • 행 인덱스 / 열 이름 설정
    : pd.DataFrame( 2차원 배열, index=행 인덱스 배열, columns= 열 이름 배열)
  • 행 인덱스 / 열 이름 변경
  1. 직접변경(원본 객체 수정)

    : DataFrame 객체.index = 새로운 행 인덱스 배열
    : DataFrame 객체.columns = 새로운 열 이름 배열

  2. 간접변경(새로운 객체 리턴)
    :
    행인덱스 변경 : DataFrame 객체.rename(index={ 기존인덱스: 새 인덱스, ... })

    열 이름 변경 : DataFrame 객체.rename(columns={기존이름 : 새로운 이름, ...})

    원본객체를 수정하려면 inplace = True 옵션을 사용한다


3. 행 / 열 삭제

  • drop() 메소드 사용
  1. 행 삭제 : DataFrame객체.drop(삭제할 행 인덱스, axis=0,inplace=True)
  2. 열 삭제 : DataFrame객체.drop(삭제할 열 이름, axis=1,inplace=True)

4. 행 / 열 선택

1. 행 선택

  • loc과 iloc인덱서 사용
    -인덱스 이름을 기준으로 선택 : loc
    -정수형 위치인덱스를 기준으로 선택: iloc
  • 범위지정
    -loc은 끝값 포함 ex) ['a':'c'] -> a행부터 c행까지(포함)
    -iloc은 끝값 미포함 ex) ['a':'c'] -> a행부터 c행전까지(미포함)

2. 열 선택

  • 1개의 열만 선택하는 경우 : DataFrame객체.열이름 또는 DataFrame['열이름']

  • 여러개의 열을 선택하는 경우
    : DataFrame객체[ [ 열1, 열2, 열3 ] ]


5. 원소선택

  • 인덱스 이름으로 원소선택 : DataFrame객체.loc['행인덱스','열이름']
  • 정수 위치인덱스로 원소선택 : DataFrame객체.iloc[행번호,열번호]

6. 행 / 열 추가

  • 열 추가 : DataFrame객체['추가하려는 열이름'] = 데이터값
    - 추가된 열의 데이터값이 해당 값으로 초기화 된다.
  • 행 추가 : DataFrame 객체.loc['추가하려는 행이름'] = 데이터 값 또는 배열
    - 추가된 열의 데이터값이 해당 값으로 초기화 된다.

7. 인덱스 활용

1. set_index() 메소드

df.set_index('열이름')
  • 해당 열이 행 인덱스로 바뀐다.

2. reindex() 메소드

df.reindex(새로운 인덱스 배열,fill_value 옵션)
  • 데이터프레임의 행 인덱스를 새로운 배열로 재지정할 수 있다.
  • 기존 객체를 변경하지 않고 새로운 데이터프레임의 객체를 반환한다.

    ※ 기존 데이터프레임에 존재하지 않는 행인덱스가 새로 추가되는경우 해당 행의 데이터 값은 NaN으로 입력된다. fill_value 옵션에 원하는값을 넣으면 해당값으로 입력된다.

3. sort_index() 메소드

df = df.sort_index(ascending=True -> 오름차순,
			False -> 내림차순)
            
  • 행 인덱스를 정렬한뒤 객체 반환

4. sort_values() 메소드

df = df.sort_values(by='정렬하고자 하는 열이름',
	       ascending=True -> 오름차순,
			False -> 내림차순)
            
  • 특정 열을 기준으로 정렬한뒤 객체 반환

0개의 댓글