시리즈는 데이터가 순차적으로 나열된 1차원 배열의 형태를 갖는다.
인덱스(index)는 데이터 값(value)과 일대일 대응이 된다.
키(k)와 값(v)이 '{k:v}' 형태로 짝을 이루는 파이썬 딕셔너리(dictionary)와 비슷한 구조를 갖는다고 볼 수 있다.
시리즈의 인덱스는 데이터 값의 위치를 나타내는 이름표(데이터 주소) 역할을 한다.
index2라는 주소를 알고 있다면 data2라는 원소 데이터 값에 바로 접근 가능하다.
딕셔너리와 시리즈의 구조를 비교해서 보면
딕셔너리의 키(k)는 시리즈의 인덱스에 대응하고, 딕셔너리 각 키에 매칭되는 값(v)이 시리즈의 데이터 값으로 변환된다.
판다스 데이터프레임DataFrame은 칼럼(열) n개짜리 테이블이라고 볼 수 있습니다.
데이터프레임을 생성하는 첫번째 방법은 딕셔너리를 pd.DataFrame으로 감싸는 형식으로 생성해주는 방법입니다.
이때 key값들은 칼럼명이 되고, 각 value들은 칼럼별 값들로 들어가게 됩니다.
다시말해 key-value 한 쌍이 데이터프레임에서 한 칼럼(열) 입니다.
여기서 value로 들어가는 리스트들의 길이가 모두 같아야 합니다. 길이 다른 리스트가 하나라도 있으면 에러가 떠요.
s = pd.Series(data = [1000,2000,"3000"],index = ["메로나","구구콘",-1])
print(s)
print(s.iloc[0]) #1000
print(s.iloc[1]) #2000
print(s.iloc[2]) #3000
print(s.iloc[-1]) #3000
print(s.loc["메로나"]) #1000
print(s.loc["구구콘"]) #2000
print(s.loc["하겐다즈"]) #Key error 인덱스값 하겐다즈가 없음 index = ["메로나","구구콘","하겐다즈"] 수정시 정상 작동
메로나 1000
구구콘 2000
-1 3000 # 문자열로 입력되어 있음
dtype: object # 데이터 타입이 object로 변환됨
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([
[1],
[2],
[3]
])
print(arr2.shape) #(3,1) 형태 3행 1열 2D배열
result = arr1 + arr2
print(result)
result = arr1 + arr2
print(result)
[[1+1, 2+1, 3+1],
[1+2, 2+2, 3+2],
[1+3, 2+3, 3+3]]
==> [[2 3 4]
[3 4 5]
[4 5 6]]

브로드캐스팅은 어떤 조건만 만족한다면 모양이 다른 배열끼리의 연산도 가능하게 해주며 모양이 부족한 부분은 확장하여 연산을 수행할 수 있도록 한다는 것이라고 생각할 수 있다. 확장 또는 전파한다는 의미로 Broadcasting을 설명하는 가장 간단한 예는 배열과 스칼라 값을 계산하는 것이다. 스칼라는 일반 상수를 생각하면 된다.
차원의 크기가 1일때 가능하다두 배열 간의 연산에서 최소한 하나의 배열의 차원이 1이라면(0번 축이든 1번 축이든; 1행이든 1열이든) 가능하다.
차원의 짝이 맞을 때 가능하다차원에 대해 축의 길이가 동일하면 브로드캐스팅이 가능하다
아래는 3차원 배열의 브로드 캐스팅

SELECT ename
FROM emp
WHERE SUBSTR(ename, 2, 1) = 'A';
Like 연산자 활용시
SELECT ename
FROM emp
WHER#E like(_A%);
SELECT ename, IFNULL(MGR, '없음') AS MGR
FROM emp;
SELECT EMPNO, ENAME
FROM EMP
WHERE LENGTH(ENAME) >= 5;
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE SAL >= 1000 AND SAL <= 2000;
or
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE SAL BETWEEN 1000 AND 2000;
SELECT ENAME, COMM
FROM EMP
WHERE COMM IS NULL;
or
SELECT ENAME, NVL(COMM, 'NO COMM') AS COMM
FROM EMP;
SELECT EMPNO, HIREDATE
FROM EMP
WHERE TO_CHAR(HIREDATE, 'YY') = '81';
or
SELECT EMPNO, HIREDATE
FROM EMP
WHERE EXTRACT(YEAR FROM HIREDATE) = 1981;
세줄요약:
1. 넘파이에서 브로드캐스팅이 일어나는 케이스를 잘 이해 하자.
2. 판다스란 = 시리즈 + 데이터프레임 이다.
3. 오라클 = nvl함수이고 이고 mysql은 ifnull 이다.