프로그래밍

[Python] Pandas Library 활용(Series)(1)

RainIron 2021. 5. 5. 16:09
반응형

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