Programming Language/Python2022. 3. 12. 16:27
728x90

판다스 10분 요약 : https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html

판다스 문서: https://pandas.pydata.org/pandas-docs/stable/user_guide/index.html

무료 전자책 참조: https://wikidocs.net/32829

import pandas as pd

df = pd.DataFrame(
    {'가격': [100, 140, 155, 70, 90],
     'PER': [1.1, 0.8, 0.7, 2.3, 3.9],
     '거래량': [1000, 800, 890, 700, 2000]},
    index=['a', 'b', 'c', 'd', 'e']
)

# 0. 기본데이터
print(df)
#     가격  PER   거래량
# a  100  1.1  1000
# b  140  0.8   800
# c  155  0.7   890
# d   70  2.3   700
# e   90  3.9  2000

# 1. 필터링
print(df[df['가격'] > 100])
#      가격  PER  거래량
# b  140  0.8  800
# c  155  0.7  890

# 조건이 여러개면 & 로직 연산자를 이용한다.!!! 
# df[df['가격'] > 100 & df['가격'] > 100]

# 필터링 데이터 구조.
print(type(df['가격'] > 100))
# <class 'pandas.core.series.Series'>

# 필터링 데이터 결과.
print((df['가격'] > 100))
# a    False
# b     True
# c     True
# d    False
# e    False
# Name: 가격, dtype: bool

# 2.1 시리즈 졍렬
print(df['PER'].sort_values(ascending=False))
# e    3.9
# d    2.3
# a    1.1
# b    0.8
# c    0.7
# Name: PER, dtype: float64

# 2.2 데이터프레임 정렬
print(df.sort_values(by='PER', ascending=True))
#     가격  PER   거래량
# c  155  0.7   890
# b  140  0.8   800
# a  100  1.1  1000
# d   70  2.3   700
# e   90  3.9  2000

# 3. rank. 시리즈로 결과 리턴
print(df['PER'].rank(ascending=True))
# a    3.0
# b    2.0
# c    1.0
# d    4.0
# e    5.0
# Name: PER, dtype: float64
728x90
Posted by 하루y