left : 통합 대상 데이터프레임1
right : 통합 대상 데이터프레임2
on : 통합 기준 key 변수 및 변수 리스트 (명시하지 않을 경우 이름이 같은 변수를 key로 식별)
left_on: 데이터프레임1의 key변수 및 변수 리스트
right_on: 데이터프레임2의 key변수 및 변수 리스트
left_index: 데이터 프레임1의 인덱스를 key 변수로 사용할 지 여부
right_index: 데이터 프레임2의 인덱스를 key 변수로 사용할 지 여부
df1.head()
df2.head()
merged_df = pd.merge(df1, df2, on = "employee")
# merged_df = pd.merge(df1, df2, on = ["employee"])
merged_df.head()
on을 이용하여 key를 지정하지 않아도 동일한 "employee" column을 key로 인식하여 병합됨
df1.head()
df2.head()
df1의 "employee" df2의 "name"을 key로 병합
merged_df = pd.merge(df1, df2, left_on="employee", right_on ="name")
merged_df.drop("name", axis=1, inplace=True) # 두개의 열 중 하나 제거
merged_df.head()
df2.head()
merged_df = pd.merge(df1, df2, left_on = "employee", right_index = True)
merged_df.head()
df1 = pd.DataFrame({"A":[1,2,3,4], "B":[1,2,3,4]})
df2 = pd.DataFrame({"A":[5,6,7,8], "B":[5,6,7,8]})
merged_df = pd.concat([df1, df2], axis = 0, ignore_index = True)
merged_df
df1 = pd.DataFrame({"A":[1,2,3,4], "B":[5,6,7,8]})
df2 = pd.DataFrame({"C":[1,2,3,4], "D":[5,6,7,8]})
merged_df = pd.concat([df1, df2], axis = 1, ignore_index = False)
merged_df
경로 내 여러 파일을 불러올 경우 : os.listdir(path)
--> os.listdir(path)로 path상의 모든 파일을 리스트로 불러 온 뒤 concat을 이용하여 병합
하나의 엑셀 파일에 여러 sheet가 있는 경우: xlrd 모듈 이용
import xlrd
wb = xlrd.openworkbook(file, on_demand=True)
sheetnames = wb.sheet_names()
-> wb.sheet_names() : 파일 내 sheet names를 리스트로 반환
pandas.pivot_table(data, index, columns, values, aggfunc)
data : dataframe
index : 행에 들어갈 조건
columns : 열에 들어갈 조건
vlaues : 집계 대상 컬럼 목록
aggfunc : 집계 함수
df.head()
pt1 = pd.pivot_table(df, index="제품", columns="쇼핑몰 유형", values="판매금액", aggfunc="mean")
pt1.head()
pt2 = pd.pivot_table(df, index = ['제품'], columns = ['쇼핑몰 유형'], values = ['판매금액', '수량'], aggfunc = 'max')
pt2.head()
df.groupby(분할기준컬럼)[적용기준컬럼].집계함수
by : 분할 기준 컬럼(목록)
as_index : 분할 기준 컬럼들을 인덱스로 사용할 지 여부
df.groupby(['쇼핑몰 유형'])['수량'].mean()
--> 쇼핑몰 유형에 따른 수량의 평균
df.groupby(['쇼핑몰 유형'])['수량', '판매금액'].agg(['mean', 'max'])
--> 2개 이상의 함수를 사용하려면 .agg()
사용
패스트캠퍼스 - 데이터전처리 ch4 일부 요약