판다스 Pandas pd (~ing)

PDJ4·2023년 9월 15일
0

파일 읽기 & 내보내기

import pandas as pd
df=pd.read_csv("name.csv") # csv파일 읽기
pd.read_excel("name.xlsx") # 엑셀파일 읽기.
내보낼_df명.to_csv('만들_파일명.csv') # 세부 저장위치 저장 안할 시 동일 위치에 저장.
  • read_excel에서 매개변수 sheet_name='name_of_sheet' 은 시트를 정하고 sheet_name = 0으로 시작 시트가 0으로 이것을 기준으로 사용도 가능./ usecols는 사용할 열을 지정. / skiprows = n : 앞에서 n개 행을 생략, skipfooter = n : 뒤에서 n개 행을 생략. nrows = n : 처음부터 n번째 행만 불러옴.

Basic

df.head() # default 는 5
df.tail() # 얘는 마지막 5개.
df.info() #df의 정보
df.describe() #요약통계량 for numerical
df.shape # (행,열)의 크기
df.columns #컬럼명 확인.
df.rename(columns = {'before_column_name' : 'after_column_name'}, inplace = True) #컬럼명 변경, inplace=True는 수정사항을 df에 그대로 적용한다는 의미.
df['col_name'].value_counts() # 컬럼 값이 나온 횟수, normalize=True 시 %표현.
df['col_name'].unique() # 컬럼 내 유일값
df.T # 전치
df.set_index('col_name', inplace = True) # 원하는 컬럼을 인덱스로 재설정. 기본적으론 0 1 2 3 이렇게 되어있음.
df.reset_index # 인덱스 되돌리기.
df.count() # 각 컬럼에 데이터 개수보여주고 NaN은 세지 않아. size는 NaN도 포함.
df['col1'].count() # 특정 컬럼에 대해.
df['col1'].size # NaN도 포함하여 셈.
df.isnull().sum() #누락값의 개수

결측값 포함된 레이블 제거

df.dropna(axis = 0, how = 'any', subset = None, inplace = False )
  • axis = 0 : 행에 대해서 제거 수행, 1은 열에 대해 수행. / how = 'any' : 하나라도 na값을 있으면 해당 행이나 열을 제거(axis 값에 따라). how = 'all'이면 모두 NA여야 제거. / subset = ['col1','col2'] 이러면 두 컬럼에 대해서 결측치 있을 경우 제거 수행. / inplace의 True는 원본을 수정한다 False는 안한다.

str

df['col1'].str.split(" ") # 공백을 기준으로 분리. 여기에 expand=True 추가 시 df화.
df[df['col1'].str.contains('specific_word')] # 특정 글자를 포함하는지. 기본적으로는 포함 시 True 아니면 False.
df['col1'].str.replace(" ","_") # 문자를 전에서 후로 대체하는데 여기서는 공백을 _로 대체한 것.
df['col1'].str.strip() # 공백제거
df['col1'].str.slice(0,4) = df['col1'].map(lambda x : x[0,4]) : 슬라이싱으로 여기선 첫 글자부터 4째 글자까지.
profile
STFOAJDI

0개의 댓글