[ Review - Series/DataFrame ]
- from pandas import Series
import pandas as pd - - 1차원 배열 추가/삭제
s.loc['w'] = '라'
s = s.drop('w') - 시리즈 생성
s = Series(['가','나','다'], index=['x','y','z']) - from pandas import DataFrame
- 데이터프레임 생성
df = DataFrame({'a':[1,3], 'b':[2,4]}, index=['x','y']) - 데이터 타입 구분하기
print(type(df.columns)) --> index 타입
print(type(df['a'])) --> Series 타입 - 인덱싱
print(df['b'].loc['x'])
print(df.loc['x','b'])
print(df.iloc[0, 1])
print(df.iloc[0].loc['b']) - 삭제
df.drop(df.columns, axis=1)
df.drop('x') - 슬라이싱
df.iloc[1:, 1:]
df.loc[['y','z'],['b','c']]
[ EDA : Exploratory Data Analysis ]
가설을 세우고 검증하는 과정.
- df.corr( numeric_only = True): 숫자 데이터 타입에 대한 상관도를 볼 수 있다.
- df.info() : 데이터 정보 확인
- df.isna().sum() : 데이터 결측 확인하기
- df.isna().sum() / len(df.index) * 100 : 결측 비율 구하기
- t = df.copy() : 데이터 카피
- df['Survived'].unique() : survive 열의 값 확인.
df['Survived'].unique()
df['Pclass'].nunique() : 개수 확인.
=======
[ groupby ]
ex1)
tmp = df.copy()
how = { 'Survived' : 'mean' }
tmp.groupby( 'Sex' ).agg( how ) * 100
ex2)
t[ ['Survived', 'Sex'] ].groupby('Sex').agg({'Survived' : 'mean' }) * 100
ex3)
=======
- df['SibSp'].value_counts() : 값의 개수를 반환한다.
- df['SibSp'].plot.hist(bins=20) : histogram을 그려준다.
- gf = df.copy()
ex) dataframe에 열 추가하기
def proc(x):
if x >= 3:
return '많음'
gf['SibSp'].isna().sum()
gf['SibSp1'] = gf['SibSp'].map(proc)
gf
[ 다변수 분석 ]
how = { 'Survived' : 'mean' }
gf.groupby(['Sex','SibSp1']).agg(how)
[차트 그리기]
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "Malgun Gothic" --> 폰트 바꿔야해 (Error 발생 가능성)
*참고
- df['승차총승객수'].value_counts() : 데이터 개수 값 반환
#연습문제 -1
- 원하는 데이터 값 정리해서 그래프 그리기
df = pd.read_csv(r"data/서울시 지하철호선별 역별 승하차 인원 정보.csv", encoding='cp949')
how = { '승차총승객수' : 'sum' }
df['사용일자'] = pd.to_datetime( df['사용일자'].astype('str')) --> 'str'로 타입 바꾸는 이유: datetime으로 변환하면 시간 숫자까지 나타나기때문에 int --> str타입으로 바꾼거다.
r = df.groupby('사용일자').agg(how)
print(r)
r.plot.line(figsize=(10,2))
#연습문제-2
- 상위 5개 값 추출해서 막대그래프 그리기
how = { '승차총승객수' : 'sum' }
tmp = df.groupby('호선명').agg(how)
tmp1 = tmp['승차총승객수'].sort_values(ascending=0)
res = tmp1.head(5)
print(res)
res.plot.bar(figsize=(10,2))
'코딩 개발자의 하루 > Python Data Science' 카테고리의 다른 글
[데이터 분석 기초] Series, DataFrame, Groupby (2) | 2023.09.06 |
---|---|
[데이터분석 기초] 자료형(list, dict), 반복문, 함수 (0) | 2023.09.06 |