< Dataframe 기본 정보 >
# Series 자료형과의 관계
- Dataframe, Series 둘 다 Pandas 에만 존재하는 자료형
- Dataframe > Series
> Dataframe 의 한 컬럼 == Series
# 기본적인 정보 확인하기
1) df.shape
ex) (891, 12)
2) df.index : 인덱스에 대한 개요를 반환한다
ex) RangeIndex(start=0, stop=891, step=1)
3) df.column : 컬럼 목록을 반환한다
ex) Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex'])
< 특정 행/컬럼 선택하기 >
# 특정 행(row) 선택하기
- 종류 : iloc, loc, ix
1) iloc [ : 6] - 맨 위에서 6개의 행을 가져온다 (key error 생길 일이 없다)
ex) >>> s.iloc[:6]
49 NaN
48 NaN
47 NaN
46 NaN
45 NaN
1 NaN
2) loc [ : 6 ] - 여러 행들 중에서, '6' 이라는 인덱스를 가진 행까지 가져온다 (없을경우, key error)
ex) >>> s.loc[:6]
KeyError: 6
ex) >>> s.loc[:3] # slice up to and including label 3
49 NaN
48 NaN
47 NaN
46 NaN
45 NaN
1 NaN
2 NaN
3 NaN
3) ix [ : 6]
- 데이터프레임의 자료형이 짬뽕되어있을 경우 : iloc 처럼 행동 (맨 위의 6개 행을 가져옴)
- 데이터프레임의 자료형이 통일되어 있을경우 : loc 처럼 행동 (일치하는 인덱스를 가진 행까지 가져온다)
# 특정 컬럼(column) 선택하기 :
1) df [ ' ~ ' ] 사용
ex) df [ ' A ' ]
2) df . loc [ : , 'A' ] : 'A' 컬럼의 모든 행을 가져오는 것 -> 즉, 'A' 컬럼 자체를 가져오는 것
> df. loc [ : , 컬럼 ] : 기본적으로 (행, 컬럼) 의 순서임을 기억
>> 주로 많이 사용되는 방식 :
- 행 선택 : df. ix [ : ]
- 컬럼 선택 : df [ ' ~ ' ]
# 특정 컬럼 & 행 선택하기 :
ex) df. loc [0]['B']
# 특정 인덱스 접근하기 : ix, iloc
- ix [7] : 8 9
> 딱 7 에 해당되는 row 를 가져온다
> 단, 만약에 인덱스에 문자가 포함되어있는 경우, iloc 처럼 행동한다
- iloc [1] : 5 6
> 맨 위에서 1 번째에 해당되는 row 를 가져온다
<인덱스 설정하기>
# 특정 컬럼을 인덱스로 설정하기 :
- df. set_index ( 'A' ) : 'A' 컬럼을 가져와서, 인덱스 값으로 활용한다
ex) df = pd.DataFrame({"A":[1,4,7], "B":[2,5,8], "C":[3,6,9]})
df = df.set_index('A')
>> B C
1 2 3
4 5 6
7 8 9
< 추가하기 >
# 특정 행 추가하기 (특정 인덱스) : loc 활용
- df.loc[2] = [11, 12, 13]
> 이렇게만 해도, 인덱스 값이 2 인 하나의 행이 생성된다
# 행 추가하기 (그냥 인덱스 중 맨 뒤에) : df. append( ) 활용
ex) a = pd.DataFrame(data=[[1,2,3]], columns=[48,49,50])
df = df.append(a)
# 컬럼 추가하기 : loc 활용하기
- 방식 : df. loc [ : , '추가하려는 컬럼 이름' ] = ~
ex) df.loc[:, 'D'] = pd.Series(['5', '6', '7'], index=df.index)
< 삭제하기 >
# 특정 행 삭제
- 방식 : df. drop( 삭제하고싶은 특정 행의 인덱스 값 )
ex) df.drop(1)
# 특정 컬럼 삭제
- 방식 : df. drop( 삭제하고싶은 특정 컬럼의 이름, axix = 1 )
ex) df.drop('A', axis=1, inplace=True)
# 중복 행 삭제
- 방식 : df. reset_index() -> df. drop_duplicates(~). set_index(~)
ex) df = df.reset_index()
df = df.drop_duplicates(subset='index', keep='last').set_index('index')
< 수정 >
# 주로 사용 가능한 방법
- loc 활용 : df. loc[ 특정 행 값 ] [ 특정 컬럼 값 ] = 바꾸고싶은 value 값
ex) df. loc [ 0 ] [ ' A ' ] = 0
- at 활용 : df. at [ 특정 행 값 , 특정 컬럼 값]
ex) df. at [3, 'Survive' ] =2
< for 반복문 >
# iterrows() 활용
ex) for row, _ in train.iterrows() :
if (train.at[row, 'Sex']=='male') and (train.at[row, 'Survived']==1) :
male_survive_cnt+=1
'프로그래밍 언어 기본 문법 > 파이썬' 카테고리의 다른 글
파이썬 데이터/자료형 (0) | 2020.03.11 |
---|---|
딥러닝 라이브러리 모음 (0) | 2020.02.15 |
(최신화 중)여러 패키지 문법 정리 - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.31 |
케라스 함수형 API - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.30 |
케라스 기본 문법 정리 - 딥러닝을 이용한 자연어처리 입문 (0) | 2020.01.30 |