PYTHON 프로그래밍

본문 바로가기
사이트 내 전체검색


PYTHON 프로그래밍
PYTHON 프로그래밍

3. Pandas 활용

페이지 정보

작성자 관리자 댓글 0건 조회 3,639회 작성일 19-10-01 00:03

본문

3. Pandas 활용

# 조건 선택

 

# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np
from numpy.random import randn

np.random.seed(101)
data=randn(5,4)
df = pd.DataFrame(data, index='A B C D E'.split(), columns='가 나 다 라'.split())
print(df)

print(df>0)

print(df[df>0])

print(df[df>0])

print(df[df['가']>0])

print(df[df['가']>0]['라'])

print(df[df['가']>0][['다','라']])

print(df[(df['가']>0) & (df['나']>0 )])

 

> python test.py

          가         나         다         라
A  2.706850  0.628133  0.907969  0.503826
B  0.651118 -0.319318 -0.848077  0.605965
C -2.018168  0.740122  0.528813 -0.589001
D  0.188695 -0.758872 -0.933237  0.955057
E  0.190794  1.978757  2.605967  0.683509
       가      나      다      라
A   True   True   True   True
B   True  False  False   True
C  False   True   True  False
D   True  False  False   True
E   True   True   True   True
          가         나         다         라
A  2.706850  0.628133  0.907969  0.503826
B  0.651118       NaN       NaN  0.605965
C       NaN  0.740122  0.528813       NaN
D  0.188695       NaN       NaN  0.955057
E  0.190794  1.978757  2.605967  0.683509
          가         나         다         라
A  2.706850  0.628133  0.907969  0.503826
B  0.651118       NaN       NaN  0.605965
C       NaN  0.740122  0.528813       NaN
D  0.188695       NaN       NaN  0.955057
E  0.190794  1.978757  2.605967  0.683509
          가         나         다         라
A  2.706850  0.628133  0.907969  0.503826
B  0.651118 -0.319318 -0.848077  0.605965
D  0.188695 -0.758872 -0.933237  0.955057
E  0.190794  1.978757  2.605967  0.683509
A    0.503826
B    0.605965
D    0.955057
E    0.683509
Name: 라, dtype: float64
          다         라
A  0.907969  0.503826
B -0.848077  0.605965
D -0.933237  0.955057
E  2.605967  0.683509
          가         나         다         라
A  2.706850  0.628133  0.907969  0.503826
E  0.190794  1.978757  2.605967  0.683509
계속하려면 아무 키나 누르십시오 . . .

 

 

# 인덱스 관련 추가사항

 

# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np
from numpy.random import randn

np.random.seed(101)
data=randn(5,4)
df = pd.DataFrame(data, index='A B C D E'.split(), columns='가 나 다 라'.split())
print(df)

df.reset_index() # 인덱스를 column으로 바꿈
print(df)

새인덱스 = '하나 둘 셋 넷 다섯'.split()
df['숫자'] = 새인덱스

print(df)

df.set_index('숫자',inplace=True)
print(df) 

> python test.py

          가         나         다         라
A  2.706850  0.628133  0.907969  0.503826
B  0.651118 -0.319318 -0.848077  0.605965
C -2.018168  0.740122  0.528813 -0.589001
D  0.188695 -0.758872 -0.933237  0.955057
E  0.190794  1.978757  2.605967  0.683509
          가         나         다         라
A  2.706850  0.628133  0.907969  0.503826
B  0.651118 -0.319318 -0.848077  0.605965
C -2.018168  0.740122  0.528813 -0.589001
D  0.188695 -0.758872 -0.933237  0.955057
E  0.190794  1.978757  2.605967  0.683509
          가         나         다         라  숫자
A  2.706850  0.628133  0.907969  0.503826  하나
B  0.651118 -0.319318 -0.848077  0.605965   둘
C -2.018168  0.740122  0.528813 -0.589001   셋
D  0.188695 -0.758872 -0.933237  0.955057   넷
E  0.190794  1.978757  2.605967  0.683509  다섯

           가         나         다         라
숫자
하나  2.706850  0.628133  0.907969  0.503826
둘   0.651118 -0.319318 -0.848077  0.605965
셋  -2.018168  0.740122  0.528813 -0.589001
넷   0.188695 -0.758872 -0.933237  0.955057
다섯  0.190794  1.978757  2.605967  0.683509
계속하려면 아무 키나 누르십시오 . . . 

 

 

# Groupby

 

# -*- coding: utf-8 -*-
import pandas as pd
data = {'회사':['구글','구글','애플','애플','아마존','아마존'],
       '이름':['김씨','이씨','박씨','최씨','장씨','마씨'],
       '매출':[200,120,340,124,243,350]}
df=pd.DataFrame(data)
print(df)

print("\n mean()\n**************")
by_comp=df.groupby("회사")
obj = by_comp.mean()
print(obj)

obj2=df.groupby("회사").mean()
print(obj2)

print("\n std()\n**************")
obj3 = by_comp.std()
print(obj3)

print("\n min()\n**************")
obj3 = by_comp.min()
print(obj3)

print("\n max()\n**************")
obj3 = by_comp.max()
print(obj3)

print("\n count()\n**************")
obj3 = by_comp.count()
print(obj3)

print("\n describe()\n**************")
obj3 = by_comp.describe()
print(obj3) 

 

 

> python test.py

    회사  이름   매출
0   구글  김씨  200
1   구글  이씨  120
2   애플  박씨  340
3   애플  최씨  124
4  아마존  장씨  243
5  아마존  마씨  350

 mean()
**************
        매출
회사
구글   160.0
아마존  296.5
애플   232.0


        매출
회사
구글   160.0
아마존  296.5
애플   232.0

 std()
**************
             매출
회사
구글    56.568542
아마존   75.660426
애플   152.735065

 min()
**************
     이름   매출
회사
구글   김씨  120
아마존  마씨  243
애플   박씨  124

 max()
**************
     이름   매출
회사
구글   이씨  200
아마존  장씨  350
애플   최씨  340

 count()
**************
     이름  매출
회사
구글    2   2
아마존   2   2
애플    2   2

 describe()
**************
       매출
    count   mean         std    min     25%    50%     75%    max
회사
구글    2.0  160.0   56.568542  120.0  140.00  160.0  180.00  200.0
아마존   2.0  296.5   75.660426  243.0  269.75  296.5  323.25  350.0
애플    2.0  232.0  152.735065  124.0  178.00  232.0  286.00  340.0
계속하려면 아무 키나 누르십시오 . . .

 

댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.