
오늘은 수업은 조금 하고 자습을 많이 했다.
다음주에 시험친다고 하니,,ㅠㅠ계속 복습을 해야겠다..
오늘도 알찬 하루를 보낸 것 같은 느낌이..!
계속 하면서 익숙해지도록 노력해야겠당
<101 Pandas Tips for Beginners_Titanic>
▶train.sort_index(axis=1)
☞열에 대한 인덱스가 알파벳 순으로 / axis=0 (행 기준) axis=1 (열 기준)
▶train[train.Embarked.isin(['C'])]
▶len(train[train.Fare == 80.0]) 행 수를 나타냄
▶(train.Fare > 80.0).any() any는 있냐없냐만 알려줌
▶mean() 평균값
▶sample = pd.DataFrame()
☞ () 안에 아무것도 안 넣어서 비어있음
▶temp = train.copy()
☞ copy 원본 데이터와 분리해서 새롭게 저장
원본데이터가 바껴도 복사본은 바뀌지 않는다
▶temp['New'] = 0
☞ 맨 끝에 새로운 컬럼 추가하기 / 모든 new값이 0이 됨
▶temp.insert(0, 'New2', 0) 0번째에 new2라는 컬럼을 만들고 값이 0으로 들어감
☞ 특정 위치에 새로운 컬럼 추가하기 / insert(위치, 컬럼명, 값)
▶temp['New'] = temp['Age']
☞ new에 age값들이 들어감
▶y_train = train['Survived']
☞ 종속 변수, label, y값, 정답이라고 부름
▶sample2 = train[['Pclass', 'Name', 'Sex']]
☞ 여러개 선택할 때는 이중괄호를 쓴다. [[]] 명심하기
▶or의 경우 '|'이것을 씀. | = shift+\
▶data = pd.concat((train, test), sort=True)
☞ 행으로 위아래 합치기 / axis = 1 하면 같은 키값에 해당하는 데이터를 가로로 넣을 수 있다
☞ DataFrame을 알파벳순으로 정렬하려는 경우 인수를 설정할 수 있습니다 sort=True
▶train.Parch.value_counts() 컬럼안의 값을 세는 것, 유일값이 몇개가 있는지를 알 수 있다
▶top3 = train.Parch.value_counts().nlargest(3)
print (top3)
☞ 특정 컬럼의 유일값 세고 top 3 뽑기
▶frequencies = data["SibSp"].value_counts(normalize = True)
☞ normailze가 정규화라는 뜻. 이게 true면 분포라서 확률로 나타남.
☞ ' '중에 몇%인지를 알 수 있음
▶threshold = 0.015 기준점이다
small_categories = frequencies[frequencies < threshold].index
☞ 특정 기준보다 작은 것 찾기
cf)))))) 판다스에서의 문자열 = object / 파이썬에서의 문자열 = string
▶a = data.groupby('Pclass').get_group(1) 원하는 그룹만 추출하기
☞ get_group(1) 이러면 pclass가 1인 것만 뽑아줌
▶train.groupby(['Pclass','Parch'])['Pclass'].count()
☞ count : 그룹 내 non-NA 개수
▶train.groupby(['Pclass','Parch'])['Pclass'].sum()
☞ sum : 그룹 내 non-NA 합 . 빈값이 아닌 것만
▶train.groupby(['Pclass','Survived'])['Pclass'].count().to_frame()
☞ 데이터프레임으로 만들기 : to_frame()
▶train.groupby(['Pclass','Survived'])['Pclass'].count().to_frame().style.background_gradient(cmap='summer_r')
☞ 데이터프레임에 색상 입히기 : style.background_gradient(cmap='summer_r')
이걸 하면 숫자 크기에 따라 색상이 입혀짐
▶pd.crosstab(train.Survived, train.Pclass, margins=True)
☞ crosstab : 요인(factors)별로 교차분석(cross tabulations)해서 행, 열 요인 기준 별로 빈도를 세어서 도수분포표(frequency table), 교차표(contingency table) 를 만들어줌
☞ margins은 all로 들어감. 합이 됨. / pd.crosstab(행으로 들어감, 열로 들어감)
▶data['Agroup'] = 1 새로운 컬럼을 만든다
나이 기준 별로 Agroup 컬럼에 값 넣기
data.loc[(data.Age.values < 24.0), 'Agroup']= 0
data.loc[(data.Age.values > 30.0), 'Agroup']= 2
▶pd.set_option('display.max_columns', 100) column 출력제한 해제
▶ cut : 특정 조건에 맞게 데이터 분류
data['Age_Cuts'] = pd.cut(data.Age,
bins=[0, 1, 3, 10, 18, 65, 99],
labels=['Baby', 'Todler', 'Kid', 'Teens', 'Adult', 'Elderly'])
▶data = data.drop('New3', axis=1) 특정 column을 삭제
▶missingno는 null 값[data.isnull().sum()] 시각화
▶missingno.matrix(data, figsize = (15,8))
☞ figsize 사이즈를 지정해주는 것
☞ cabin은 1000개가 null값이라서 하얗다
▶corr = data.corr() 데이터간 상관관계를 보여줌
▶# 마스크 셋업
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True
☞ mask를 false로 두면 대칭이 나옴. 필요 없으니 true로 함.근데 mask 굳이 안 넣어도 됨
# plt 그래프 그리기
plt.figure(figsize=(14, 8)) 그래프 사이즈 셋업
plt.title('Overall Correlation of Titanic Features', fontsize=18) 그래프 타이틀 숫자 바꾸면 글씨 크기 달라짐
sns.heatmap(corr, mask=mask, annot=False,cmap='RdYlGn', linewidths=0.2, annot_kws={'size':20}) #linewidths라인 굵기
☞ corr 이것만 다른 것으로 바꾸면 다른 다이터가 나온다. 위의 문장을 응용해서 쓰면 됨
'PYTHON' 카테고리의 다른 글
[빅데이터 분석] 2021.12.22 자료구조, 파이썬 스타일 코드 (0) | 2021.12.22 |
---|---|
[빅데이터 분석] 2021.12.21 Numpy (0) | 2021.12.21 |
[빅데이터 분석] 2021.12.20 Titanic (0) | 2021.12.20 |
[빅데이터 분석] 2021.12.17 Pandas (0) | 2021.12.19 |
[빅데이터 분석] 2021.12.16 Python, Pansdas (0) | 2021.12.17 |