[Python] [Pandas] 데이터 Slicing [loc, iloc사용, 인덱스 이름 변경.set_index(), isin()]

도도요닝·2022년 8월 15일
0

python

목록 보기
3/12

행(row)선택하기

  • 행 가져오기 (df['행 시작 인덱스' : '행 끝 인덱스'])
    행 가져오기는 연속적으로 데이터를 불러옴
#행 하나 가져오기 
df[0:1]

#행 여러개 가져오기 
#index 0번, 1번 행을 가져옴
df[0:2]

#5 이상인 행 가져오기
df[5:]

특정열에서 값 가져오기

#특정 컬럼에서 0번재 값 가져오기 
df['컬럼명'][0]

열(column)선택하기

  • 열은 '컬럼명'지정 행은'index'지정
  • 열 하나 가져오기 (df['컬럼명'] or df.컬럼명)
  • 범위 설정 df[df.columns[시작인덱스 : 끝 인덱스]]
#컬럼이 어떤 것들이 있는 지 확인
df.coulmns
# 컬럼 여러 개 지정시 []중복 사용학 ㅣ!!
df[['컬럼명1','컬럼명2']]

loc, iloc

  • df.loc['행':'열']
  • df.iloc['행':'열']

loc

  • '특정 레이블 label=(index로 이해하기)'통해 접근
  • index 기준으로 찾는 것을 loc로 이해하기
  • location 약어
#0번째,3번째,5번째 행을 가져온다고 오해 말기 !!
#index에 0,3,5라고 적혀 있는 행을 가져오는 것임 
df.loc[[0,3,5]]

숫자 인덱스 형에서 문자열 인덱스로 변경하는 방법

인덱스 이름 변경.set_index()

#새로운 파일이름 = #기존에 사용하고 있던 파일 복사
loc_df = df.copy()

파일명.index = 파일명['컬럼명']
파일명.set_index('컬럼명') => 전체 index명 바뀜

**loc_df.index = loc_df['변경하고자 하는 컬럼명']**
**loc_df.set_index('변경하고자 하는 컬럼 명')**
loc_df.loc[['index명1','index명2']]

loc 조건문 사용(df.loc['조건문'])

#파일명.loc[파일명['컬럼명]=='원하는 값'
#'컬럼'에서 ~인 경우에만 가져온다.
#'컬럼'에서 ~이 아닌 경우에만 가져온다.
df.loc[df['컬럼명']=='원하는 값']
df.loc[df['컬럼명']!='원하는 값'
#컬럼이 5이상인 경우에만 가져옴
df.loc[df['컬럼']>=5]

loc 특정 열 조회

#(행,열) 위치관계 잊지 않기 
#'컬럼'에 대한 것만 가져오기 
df.loc[:,['컬럼명']]
#중복 선택일 경우 [[]]
df.loc[:,['컬럼1','컬럼2']]

loc 조건문 df.loc[:,'조건문']

#특정 열 가져오기 
#특정 열 제외하고 가져오기 
df.loc[:,df.columns == '컬럼명']
df.loc[:,df.columns != '컬럼명']

loc 행, 열 조건

#지정 컬럼에 속해 있는 열을 가져옴
df.loc[df['index']=='특정 index',['컬럼']]
df.loc[df['index']=='특정 index',df.columns == '특정 컬럼']

iloc

  • integer location

iloc 특정 행 조회

#0**번째** 가져옴
#지정해준 파일명.iloc[0]
iloc_df.iloc[0]
#**0,1,3번째 가져옴**
iloc_df.iloc[[0,1,3]]
#index이름이 필요 없음
#1번째부터 3번째까지 가져옴
iloc_df.iloc[1:3]

특정 열 조회

#행은 다 가져오고, 컬럼 3번째에서 6번째까지 가져오기 
iloc_df.iloc[:,3:6]

[컬럼].isin('가져오고 싶은 값')

  • 내가 정한 list안에 있는 값들만 가져오고 싶을 때 사용
#원하는 값을 지정해주기 
name = ['리스트 지정'] 
**#컬럼 내에 지정된 리스트 값만 가져오기
#true와 false로 나타남**
**df['컬럼명'].isin(name)**
# dataframe 형태로 나타남
df.loc[df['컬럼'].isin(name)]

행 row, 열 column 추가/삭제

  • 행 추가 : df.append(dict 또는 Series/DataFrame)
  • ignore_index = True 반드시 추가
  • 열 추가 : df['추가할 열 이름']='추가할 열 정보(list 또는 Series)
  • 행/열 삭제
  • 행 삭제 : df.drop(index=['삭제하려는 행 인덱스'])
  • 열 삭제 : df.drop(columns=['삭제하려는 열 이름'])

Series 이용하여 행 추가

type(df.iloc[1])
>> pandas.core.series.Series
#두번째 값을 뽑아서 추가 
df.append(df.iloc[1])

0개의 댓글