ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • gapminder
    데이터 분석/jupyternotebook 2020. 6. 22. 15:51
    import pandas as pd
    import numpy as np
    
    df = pd.read_csv("Data/gapminder.tsv", sep ='\t')
    
    df
    df.head()
    df.columns
    
    
    df.iloc[-1]
    # 1.100, 1000번행 추출 
    df.loc[1]
    df.loc[[1,100,1000]]
    
    
    df.head()
    #df pop, year 열 
    #[] 
    df.loc[:,['year','pop']]
    df.iloc[:,[2,4,-1]]
    df.iloc[:,list(range(5))] #열이 list형
    #list(range(5))
    df.iloc[:,:3]
    df.iloc[:,0:6:2] # 0번부터 6까지 2씩증가 
    
    
    #df 의 1번 10번 100번행의 2번 4번 열을 추출 
    df.iloc[[1,10,100],[2,4]]
    df.loc[[1,10,100],['year','pop']]
    
    df
    #lifeExp 열을 연도별로 그룹화하여 평균을 구하여라 
    df.groupby(by='year')['lifeExp'].mean()
    
    #lifeExp, gdpPercap열의 평균값을 연도, 지역별로 그룹화하여 계산 
    # 1952 asia 
    #df.groupby(by=['year','continent'])['lifeExp','gdpPercap'].mean()
    df.groupby(by=['year','continent'])[['lifeExp','gdpPercap']].mean()
    
    #대륙별 국가의 개수 출력 
    #df['country'].unique()
    #df.groupby('continent')['country'].count()
    df.groupby('continent')['country'].nunique() # 숫자는 앞에  n 
    
    
    
    import seaborn as sns 
    anscombe=sns.load_dataset("anscombe")
    anscombe
    #'통계치로만 데이터를 해석하지 말아라 ! dataset'
    anscombe.describe()#기술통계 
    anscombe #dataset 단위로  x 및 y의 평균을 출력 
    # print(anscombe.groupby('dataset')[['x','y']].mean())
    # print(anscombe.groupby('dataset')[['x','y']].std())
    # print(anscombe.groupby('dataset')[['x','y']].var())
    
    anscombe
    
    
    
    import matplotlib.pyplot as plt
    
    df1=anscombe[anscombe['dataset']=='I']
    df2=anscombe[anscombe['dataset']=='II']
    df3=anscombe[anscombe['dataset']=='III']
    df3 =anscombe[anscombe['dataset']=='IV']
    
    fig= plt.figure() 
    axes1 = fig.add_subplot(2,2,1)#figure 종이 한장 axes 축 axis 축들
    axes2 = fig.add_subplot(2,2,2)
    axes3 = fig.add_subplot(2,2,3)
    axes4 = fig.add_subplot(2,2,4)
    
    
    axes1.plot(d1['x'],d1['y'],'o')
    axes2.plot(d2['x'],d2['y'],'o')
    axes3.plot(d3['x'],d3['y'],'o')
    axes4.plot(d4['x'],d4['y'],'o')
    
    axes1.set_title('data1')
    axes2.set_title('data2')
    axes3.set_title('data3')
    axes4.set_title('data4')
    
    
    fig.tight_layout()
    fig
    
    
    #feature enginnering(특성공학)
    #기존변수 ->새로운 변수 생성..
    
    sns.load_dataset('titanic').columns
    # y = f(x)
    # 점수 = f(공부시간)    종속변수 = f(독립변수)
    #survived=f(pclass)
    
    
    # mean()
    # 특이값 (outlieres) = (q3-q1)*1.5 범위를 벗어나는 수 
    # 특이값은 제거 
    
    
    tips=sns.load_dataset('tips')
    sp=plt.figure()
    axes1 = sp.add_subplot(1,1,1)
    axes1.scatter(tips['total_bill'],tips['tip'])
    
    #feature enginnering(특성공학)
    #기존변수 ->새로운 변수 생성..
    
    sns.load_dataset('titanic')
    
    
    df1=pd.read_csv('Data/concat_1.csv')
    df2=pd.read_csv('Data/concat_2.csv')
    df3=pd.read_csv('Data/concat_3.csv')
    df3
    
    pd.concat([df1,df2,df3],ignore_index=True,axis=1)
    #axis=0 default(행방향 연결)
    #axis=1 default(열방향 연결)
    
    person = pd.read_csv('Data/survey_person.csv')
    print(person)
    print("="*50)
    
    site = pd.read_csv('Data/survey_site.csv')
    print(site)
    print("="*50)
    
    survey = pd.read_csv('Data/survey_survey.csv')
    print(survey)
    print("="*50)
    
    visited = pd.read_csv('Data/survey_visited.csv')
    print(visited)
    print("="*50)
    
    visited
    
    visitedSubset=visited.loc[[0,2,6],]
    visitedSubset
    
    o2oMerge = site.merge(visitedSubset,left_on='name',right_on='site')
    o2oMerge
    
    #site 의 name과 visited의 site를 기준으로 머지
    o2oMerge = site.merge(visited,left_on='name',right_on='site')
    o2oMerge
    
    
    # person의 ident와 survey의 person을 기준으로 병합
    ps = person.merge(survey,left_on='ident',right_on='person')
    ps
    
    
    vs = visited.merge(survey,left_on='ident',right_on='taken')
    vs
    
    print(ps)
    print('='*50)
    print(vs)
    
    psvs=ps.merge(vs,left_on=['ident','taken','quant','reading'],right_on=['person','ident','quant','reading'])
    psvs
    

    '데이터 분석 > jupyternotebook' 카테고리의 다른 글

    챗봇 인텐트 xlsx->import  (0) 2020.06.29
    타이타닉  (0) 2020.06.22
    babynames  (0) 2020.06.22
    정규화,크롤링  (0) 2020.06.18
    피어슨 상관계수  (0) 2020.06.18
Designed by Tistory.