import pandas as pd
#데이터 프레임 만들기
df1 = pd.DataFrame({'col 1': ['A', 'B', 'C'],
'col 2': ['1', '2', '3']})
df2 = pd.DataFrame({'col 1': ['a', 'b', 'c'],
'col 2': ['4', '5', '6']})
#위/아래로 합치기(행기준)
pd.concat([df, df1], axis=0)
#옆으로 합치기(열기준)
pd.concat([df, df1], axis=1)
df2 = pd.DataFrame({'col 3': ['a', 'b', 'c'],
'col 4': ['4', '5', '6']})
df2의 컬럼명을 col3, col4로 수정하여 concat함수를 적용해봤다.
#위/아래로 합치기(행기준)
pd.concat([df, df1], axis=0)
컬럼명이 달라 df1에 바로 붙지 않고 옆에 col3, col4가 컬럼으로 오고 아래로 합쳐진다. 그리고 비어있는 부분은 NaN값(결측치)값으로 채워진다.
#위/아래로 합치기(열기준)
pd.concat([df, df1], axis=1)
열기준으로 만들땐 이상없이 위와 동일하게 만들어지는 것으로 확인할 수 있다.
이미지 출처: https://medium.com/swlh/merging-dataframes-with-pandas-pd-merge-7764c7e2d46d
#데이터프레임 만들기
df1 = pd.DataFrame({
'data1':range(6),
'key':list('aabbcc')
})
df2 = pd.DataFrame({
'data2':range(3),
'key':list('cad')
})
각각의 df1,df2가 만들어졌다.
#merge(how='inner')
pd.merge(df1, df2)
key의 공통된 부분인 a,c로 merge된것을 알수 있다.
#merge(how='outer')
pd.merge(df1, df2, on='key', how='outer')
key의 a,b,c,d가 모두 들어간것을 확인할 수 있고 빈공간은 NaN으로 채워졌다.
#merge(how='left')
pd.merge(df1, df2, on='key', how='left')
df1을 기준으로 join을 수행하고 df2의 키가 없으면 NaN으로 채워진다.
#merge(how='right')
pd.merge(df1, df2, on='key', how='right')
df2를 기준으로 join을 수행하고 df1의 키가 없으면 NaN으로 채워진다.
df1 = df[( (df['col'] > 0) & (df['col'] < 10))]
*col이라는 컬럼에서 0보다 크고 10보다 작은 값 추출해서 df로 보여주기
df[df['col1'].isin(['col1에있는 특정 단어'])]
df[(df['col1'] == 'col1에있는 특정 단어')]
출처: 코드스테이츠 강의 노트
이미지출처: https://r4ds.had.co.nz/tidy-data.html
Melt는 어떻게 데이터를 녹이는 걸까요?
출처: 코드스테이츠 강의자료
Pivot_table 함수는 melt와 반대 역할을 하는 함수