Aiffel_learning/Data_analysis

2. pandas 메소드 한눈에!

이유29 2024. 6. 6. 20:53

한눈에 보기 편하려고 정리한 글 :)

메소드(코드) 설명
데이터를 dataframe, series화 하기
pd.DataFrame(데이터) 데이터를 dataframe으로 변경
pd.Series(데이터) 데이터를 series으로 변경

 

파일 불러오기
data = pd.read_csv('csv파일') csv 파일 불러오기
data = pd.read_excel('xlsx 파일') 엑셀파일 불러오기
파일 내보내기
df.to_csv('output.csv', index=False) csv 파일 내보내기

 

데이터 병합하기
concat() 세로 or 가로로 다 각각 이어붙여짐
(인덱스도 그대로 각각, 같은 column만 합쳐짐)
merge(자료, on=suffix칼럼,
how=join방식)
두 개 이상의 데이터 프레임을 특정 공통 열 또는 인덱스를 기준으로 병합
(자동으로 공통되는 부분을 파악함)

on : 기준이 되는 key 값 지정 / how = 'inner', 'outer', 'left', 'right'
join() suffix 칼럼을 수동으로 생성해서 병함
reset_index()
index를 처음칸부터 0~으로 재설정
(groupby한 결과를 한개의 dataframe으로 변경하는데도 유용함)

 

데이터 분석, 변환하기
head(n) 앞에서 부터 n줄 만큼 데이터 불러오기(빈칸이면 5줄)
tail(n) 끝에서부터 n줄만큼 불러오기(최신 데이터셋을 확인할 때 유용)
sort_values(by='칼럼') 오름차순으로 데이터 정렬(복수의 칼럼을 기준으로 정렬하는 것도 가능함)
sort_values(by ='칼럼', ascending=False) 내림차순으로 데이터 정렬
loc [ 인덱스이름 ] 'n'이라는 index이름을 가진 행의 값 출력
iloc [ n번째행 ] n번째 행의 값 출력
value_counts() 각 category 별로 값이 몇개 있는지 측정
unique() 해당 칼럼의 카테고리를 모두 출력해줌
nunique() 카테고리 종류의 개수를 출력
rename( { : } ) 칼럼, 인덱스 이름 변경
replace( { : } ) 특정값을 다른 값으로 대체(dataframe, series)
map() 시리즈의 각 요소를 지저된 함수나 매핑에 따라 반환(series)
apply() 함수를 데이터프레임의 행 또는 열에 적용(dataframe, series)
duplicated() 중복여부 확인
round(,n) 파이썬에서 숫자를 반올림해서 소숫점 n번째자리까지 표현
set_option 데이터 처리 및 출력 시의 다양한 옵션을 커스터마이즈할 수 있습니다.
예를 들어, 데이터 프레임의 출력 시 표시되는 최대 항/열 수, 출력 포맷등을 조정가능
quantile( ) 통계학에서 데이터 세트를 동일한 크기의 연속 구간으로 나누는 데 사용되는 값.
데이터 세트의 특정 백분위수를 나타내는 위치 값으로 생각할 수 있습니다.
예를 들어, 50번째 백분위수(또는 중앙값)는 데이터 세트를 절반으로 나누는 값입니다

** set(dataset['column']) : 파이썬의 집합구조로 변환시켜서 중복된 값을 제거하고 고유한 값만 남길 수 있음.

결측치
count() 결측치 제외한 칼럼별 값의 갯수를 반환
isna() 결측치 여부 확인
isna().mean() 카테고리별로 결측치 비율(비율 보고 drop 여부 결정 多)
isna().sum() 카테고리별로 결측치 갯수 합
dropna() 결측치 항목 삭제
dropna(subset=[칼럼]) 특정 칼럼의 결측치 다 삭제
fillna(a) 결측치를 해당값(a)로 채우기

 

삭제하기
drop(인덱스)
df.drop
(columns=['B', 'C'],
axis=1, inplace=True)
값 삭제, 특정칼럼 삭제
del df['칼럼'] 특정 칼럼 삭제
drop_duplicates()  중복항복 삭제
data = data [data['칼럼'] != 30] 칼럼의 값이 '30'인 행 삭제하기

* axis  ->  0 : value값, 1 : column 범위

* inplace -> True : 변경된 값 덮어쓰기, False : 변경된 값 한번 출력

데이터타입 변경
info() 데이터의 기본정보 확인(데이터타입,누락된 값의 수, 메모리 사용량 등)
str.isdigit() 숫자로 구성되어 있는지 확인
dtypes() 각 열의 데이터타입을 보여줌
astype(데이터타입) 데이터타입 변경
to_numeric() 문자열이나 다른 타입의 데이터를 숫자형으로 변환
(정수형 또는 부동소수점형 여부는 자동으로 결정됨)
get_dummies() one-hot encoding으로 0,1값 주어짐
pd.to_datetime() datetime 데이터타입으로 변경

 

aggregation( 여러 데이터 포인트를 요약하고, 그룹화하여 새로운 통계 또는 정보를 추출)
describe() 각 column의 통계정보 요약본(count, mean, std, min, max 등)
groupby([칼럼1,칼럼2]).통계메소드 칼럼을 그룹화하여 통계,정보 추출
df['칼럼1'].groupby(df['칼럼2'])
df.groupby('칼럼2')['칼럼1'] 
칼럼2로 칼럼1 분석하기
df.corr()
df[['칼럼1','칼럼2']].corr()
칼럼끼리 상관관계 분석하기
agg([통계메소드1,통계메소드2]) 여러 개의 통계 메소드 한번에 입력가능
min() 최소값
max() 최대값
sum() 합계 구하기
sum(axis=1) 해당 데이터프레임 가로로 합산 구하기
mean() 평균
median() 중앙값
var() 분산
std() 표준편차
argmin() 최솟값, 최대값을 가지고 있는 을 반환
argmax() 최솟값, 최대값을 가지고 있는 인덱스를 반환
cumsum() 누적 합 계산
pct_change() 퍼센트 변화율을 계산

 

문자열 메소드
str 무조건 이건 들어가야 문자열 자체에 대한 작업 가능
str.split(expand=True) split하고 나뉜 항목들이 칼럼화됨
str.split().apply(함수/lamdba) apply로 함수도 적용가능

 

피봇테이블 만들기
pd.pivot(data,index,columns,values) pivot은 함수적용은 불가능함. 그냥 데이터 구조변경만 가능
pd.pivot_table(data, index='A', columns='B',
values='C', aggfunc='D')
행:A, 열:B, 값:C, 적용통계:D로 하는 pivot table 만들기
pd.melt(data, id_vars, value_vars,
value_name)
피봇테이블-> dataframe으로 구조변경