반응형
1. Import
import pandas as pd # as pd는 pandas를 줄여서 간편하게 쓰기 위해 지칭하는 것
2. Series(1)
Index라는 구조가 추가된 자료구조
Series 구조 |
|
Index | Value |
0 | 42 |
1 | 24 |
2 | 17 |
3 | 3 |
a = pd.Series([42, 24, 17, 3])
b = pd.Series([42, 24, 17, 3], index=['a', 'b', 'c', 'd'])
'''
a 42
b 24
c 17
d 3
'''
b.values
'''
array([42, 24, 17, 3], dtype=int64)
'''
b.index
'''
Index(['a', 'b', 'c', 'd'], dtype='object')
'''
print(b[0])
print(b['a'])
# 두 값은 같은 것을 가리킨다.
print(b[['a', 'b']])
'''
a 42
b 24
dtype: int64
'''
array1 = np.arange(5)
ser1 = pd.Series(array1)
print(ser1)
'''
0 0
1 1
2 2
3 3
4 4
dtype: int32
'''
ser1[ser1 > 2]
'''
3 3
4 4
dtype: int32
'''
3. Series(2)
* series.unique(): value 중 중복된 값을 제하고 원본 값 집합 => return 값으로 Array가 반환된다.
* series.value_counts(): 각 항목값 갯수 => return 값으로 Series가 반환된다.
* series.isin([ x, y, z ...]): 리스트 안의 값들이 있는지 조회 => return 값으로 Series가 반환된다.
ser2 = pd.Series([1, 2, 6, 3, 2, 1, 3], index =['red', 'blue', 'white', 'blue', 'red', 'blue', 'red'])
'''
red 1
blue 2
white 6
blue 3
red 2
blue 1
red 3
dtype: int64
'''
ser2.unique()
'''
array([1, 2, 6, 3], dtype=int64)
'''
ser2.value_counts()
'''
3 2
2 2
1 2
6 1
dtype: int64
'''
ser2.isin([0, 3])
'''
red False
blue False
white False
blue True
red False
blue False
red True
dtype: bool
'''
4. Series(3)
* NaN Value: 결측값, 일종의 Null 값으로 해석
* series.isnull(): Series내의 null 값인 원소를 True로 return => return 값으로 Series가 반환된다.
* series.notnull(): isnull의 반대 => return 값으로 Series가 반환된다.
* Series.dropna(): NaN값 삭제
ser3 = pd.Series([5, 10, 15, np.NaN, 25, np.NaN])
ser3.isnull()
'''
0 False
1 False
2 False
3 True
4 False
5 True
dtype: bool
'''
ser3.notnull()
'''
0 True
1 True
2 True
3 False
4 True
5 False
dtype: bool
'''
# isnull() 응용
ser3[ser3.isnull()]
'''
3 NaN
5 NaN
dtype: float64
'''
ser3.dropna()
'''
0 5.0
1 10.0
2 15.0
4 25.0
dtype: float64
'''
* Dictionary -> Series
dic1 = {'red': 100, 'blue': 200, 'green': 300, 'yellow': 400, 'purple': 500}
ser4 = pd.Series(dic1)
'''
red 100
blue 200
green 300
yellow 400
purple 500
dtype: int64
'''
5. Series Apply
ser4.apply(lambda x: np.sqrt(x) + 100)
'''
red 110.000000
blue 114.142136
green 117.320508
yellow 120.000000
purple 122.360680
dtype: float64
'''
6. Series Sort
* Series.sort_index(ascending=True(default)): 인덱스를 기준으로 오름차순으로 정렬
* Series.sort_index(ascending=False): 인덱스를 기준으로 내림차순으로 정렬
* Series.sort_values(ascending=True(default)): 값을 기준으로 오름차순으로 정렬
* Series.sort_values(ascending=False): 값을 기준으로 내림차순으로 정렬
ser5 = pd.Series({'a': 30, 'b': 70, 'c': 10, 'd': 20, 'e': 100})
'''
a 30
b 70
c 10
d 20
e 100
dtype: int64
'''
ser5.sort_index()
'''
a 100
b 30
c 20
d 70
e 10
dtype: int64
'''
ser5.sort_index(ascending = False)
'''
e 10
d 70
c 20
b 30
a 100
dtype: int64
'''
ser5.sort_values()
'''
e 10
c 20
b 30
d 70
a 100
dtype: int64
'''
반응형
'프로그래밍' 카테고리의 다른 글
[Python] Data Manipulation (0) | 2021.05.07 |
---|---|
[Python] Pandas Library(Series)(2) (0) | 2021.05.06 |
[Python] Pandas Library 활용(DataFrame) (0) | 2021.05.06 |
[Python] NumPy Library 활용(2) (0) | 2021.05.05 |
[Python] NumPy Library 활용(1) (0) | 2021.05.04 |