Series

Series

선언

s = pd.Series([1,3,5, np.nan, 6,8])
s
=>
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64
--------------
s = pd.Series(np.random.randint(10, size=5))
s
=>
0    9
1    3
2    8
3    3
4    7
dtype: int64

index 설정 (index = list(“ABCDE”))

list("ABCDE")
# index 설정
s = pd.Series(np.random.randint(10, size=5), index=list("ABCDE"))
s
=>
A    6
B    3
C    4
D    1
E    5
dtype: int64
--------------
# 데이터의 확인
list(s.index), list(s.values)
=> (['A', 'B', 'C', 'D', 'E'], [6, 3, 4, 1, 5])
--------------
string = "A"
s.A, s["A"], s[string]
=> (6, 6, 6)
--------------
data = pd.Series(np.random.randint(10, size=5), index=list("12345"))
data
=>
1    3
2    2
3    8
4    0
5    6
dtype: int64
--------------
s[1]
=> 3

이름 설정

data
=>
1    3
2    2
3    8
4    0
5    6
dtype: int64
--------------
data.name = "random_number"
data.index.name = "index_number"
data
=>
index_number
1    4
2    0
3    2
4    4
5    0
Name: random_number, dtype: int32

연산을 할때 브로드캐스팅이 됩니다

data = pd.Series(np.random.randint(10, size=5), index=list("ABCDE"))
data
=>
A    9
B    8
C    7
D    2
E    1
dtype: int64
--------------
data * 3
=>
A    27
B    24
C    21
D     6
E     3
dtype: int64
--------------
# 데이터 선택
data[list("BCD")]
=>
B    8
C    7
D    2
dtype: int64
--------------
# offset의 사용
data[::-1]
=>
E    1
D    2
C    7
B    8
A    9
dtype: int64
--------------
data[data > 5]
=>
A    9
B    8
C    7
dtype: int64

딕셔너리 데이터로 Series 만들기

dic = {"D":3, "E":5, "F":7}
data2 = pd.Series(dic)
data2
=>
D    3
E    5
F    7
dtype: int64
data
=>
A    9
B    8
C    7
D    2
E    1
--------------
result = data + data2
result
=>
A    NaN
B    NaN
C    NaN
D    5.0
E    6.0
F    NaN
dtype: float64
--------------
#.isnull()
result.isnull()
=>
A     True
B     True
C     True
D    False
E    False
F     True
dtype: bool
--------------
result[result.isnull()] = data
result
=>
A     5.0
B     2.0
C     4.0
D    12.0
E    11.0
F     NaN
dtype: float64
--------------
result[result.isnull()] = data2
result
=>
A     5.0
B     2.0
C     4.0
D    12.0
E    11.0
F     7.0
dtype: float64
--------------
result[result.notnull()]
=>
A    False
B    False
C    False
D     True
E     True
F    False
dtype: bool
--------------
# NaN 데이터를 제거
result.dropna()
=>
D    5.0
E    6.0
dtype: float64
--------------
result
=>
A    NaN
B    NaN
C    NaN
D    5.0
E    6.0
F    NaN
dtype: float64
--------------
result.dropna(inplace=True) #완전 바꿔버리기
result
=>
D    5.0
E    6.0
dtype: float64