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