다음은 책 '모두의 딥러닝'의 부록 부분에 해당하는 내용입니다.

 

모두의 딥러닝 - YES24

2년 연속 베스트셀러, 내용과 소스 코드 전면 업그레이드딥러닝 기초부터 최신 트렌드까지 한 권으로 공부하자그동안 딥러닝 입문서로 제 역할을 톡톡히 해낸 『모두의 딥러닝』이 최근 주목받

www.yes24.com

 

 

M. 데이터 병합하기

# 실습을 위한 데이터 프레임 만들기
import pandas as pd

adf = pd.DataFrame({"x1" : ['A', 'B', 'C'],
                    "x2" : [1, 2, 3]})

bdf = pd.DataFrame({"x1" : ['A', 'B', 'D'],
                    "x3" : ['T', 'F', 'T']})

cdf = pd.DataFrame({"x1" : ['B', 'C', 'D'],
                    "x3" : ['2', '3', '4']})

실행 결과(adf)
실행 결과(bdf)
실행 결과(cdf)

70. 왼쪽 열을 축으로 병합하기

# x1을 키로 해서 병합, 왼쪽(adf)을 기준으로
# 왼쪽의 adf에는 D가 없으므로 해당 값은 NaN으로 변한한다.
pd.merge(adf, bdf, how='left', on='x1')

실행 결과

71. 오른쪽 열을 축으로 병합하기

# x1을 키로 해서 병합, 오른쪽(bdf)을 기준으로
# 왼쪽의 bdf에는 C가 없으므로 해당 값은 NaN으로 변한한다.
pd.merge(adf, bdf, how ='right', on='x1')

실행 결과

72. 공통 값만 병합하기

pd.merge(adf, bdf, how='inner', on='x1')

실행 결과

73. 모든 값을 병합하기

pd.merge(adf, bdf, how='outer', on='x1')

실행 결과

74. 특정한 열을 비교해서 공통 값이 존재하는 경우만 가져오기

# adf와 bdf의 특정한 열을 비교해서 공통 값이 존재하는 경우만 가져온다.
# adf.x1열과 bdf.x1열은 A와 B가 같으므로 adf의 해당 값만 출력한다.
adf[adf.x1.isin(bdf.x1)]

실행 결과

75. 공통 값이 존재하는 경우 해당 값을 제외하고 병합하기

adf[~adf.x1.isin(bdf.x1)] # 해당 값만 빼고 출력한다.

실행 결과

76. 공통 값이 있는 것만 병합하기

pd.merge(adf, cdf)

실행 결과

77. 모두 병합하기

pd.merge(adf, cdf, how='outer')

실행 결과

78. 어디서 병합되었는지 표시하기

pd.merge(adf, cdf, how='outer', indicator=True)

실행 결

79. 원하는 병합만 남기기

pd.merge(adf, cdf, how='outer', indicator=True).query('_merge=="left_only"')

실행 결과

80. merge 칼럼 없애기

pd.merge(adf, cdf, how='outer', indicator=True).query('_merge=="left_only"').drop(columns=['_merge'])

실행 결과

 

 

N. 데이터 가공하기

df = pd.DataFrame({"a" : [4, 5, 6, 7], # 열 이름을 지정해  주고 시리즈 형태로 데이터 저장
                   "b" : [8, 9, 10, 11],
                   "c" : [12, 13, 14, 15]},
                  index=[1, 2, 3, 4]) # 인덱스는 1, 2, 3, 4으로 정해 준다.

실행 결

81. 행 전체를 한 칸 아래로 이동하기

df.shift(1)

실행 결과

82. 행 전체를 한 칸 위로 이동하기

df.shift(-1)

실행 결과

83. 첫 행부터 누적해서 더하기

df.cumsum()

실행 결과

84. 새 행과 이전 행을 비교하면서 최댓값 출력하기

df.cummax()

실행 결과

85. 새 행과 이전행을 비교하면서 최솟값 출력하기

df.cummin()

실행 결과

86. 첫 행부터 누적해서 곱하기

df.cumprod()

실행 결과

 

O. 그룹별로 집계하기

import pandas as pd

# 실습을 위해 데이터를 불러온다.
!git clone https://github.com/taehojo/data.git

# 15장의 주택 가격 예측 데이터를 불러온다.
df = pd.read_csv("./data/house_train.csv")

실행 결과

87. 그룹 지정 및 그룹별 데이터 수 표시

df.groupby(by="YrSold").size() # 팔린 연도를 중심으로 그룹을 만든 후 그룹별 수 표시

실행 결과

88. 그룹 지정 후 원하는 칼럼 표시하기

# 팔린 연도를 중심으로 그룹을 만든 후 각 그룹별로 주차장의 넓이를 표시한다.
df.groupby(by="YrSold")['LotArea'].mean()

실행 결과

89. 밀집도 기준으로 순위 부여하기

df['SalePrice'].rank(method='dense') # 각 집 값은 밀집도를 기준으로 몇 번째인가

실행 결과

 

90. 최젓값을 기준으로 순위 부여하기

df['SalePrice'].rank(method='min') # 각 집 값이 최젓값을 기준으로 몇 번째인가

실행 결과

91. 순위를 비율로 표시하기

# 집 값의 순위를 비율로 표시한다(0=가장 싼 집, 1=가장 비싼 집).
df['SalePrice'].rank(pct=True)

실행 결과

92. 동일 순위에 대한 처리 방법 정하기

# 순위가 같을 때 순서가 빠른 사람을 상위로 처리한다.
df['SalePrice'].rank(method='first')

실행 결과

 

+ Recent posts