
Pandas는 Numpy와 같이 Python에서 주로 사용되는 데이터분석 라이브러리
Tabular 데이터를 다루기에 용이함
데이터는 행과 열로 정리되어 하나의 객체 단위로 사용이 가능함
- 시리즈 (Series)
- 데이터 프레임 (DataFrame)
효율적이고 빠르게 대용량 데이터를 활용할 수 있음
Pandas 설치
- Numpy와 유사하게 Anaconda를 설치 한 뒤
- Python Pip을 사용하여 설치
Pandas 라이브러리 불러오기
- import pandas
- 보통 Pandas 이름을 축약해서, "import pandas as pd" 로 사용

Series를 생성하기 위해서는 데이터가 필요 : (예시) [10,20,30]
pd.Series(data=None, Index=None)를 사용하여 생성
예시 1) scores = pd.Series([10,20,30])
예시 2) costs = pd.Series(range(0,1000,10)
예시 3) names = pd.Series(["Tom","John", "Jenny"])
se1 = pd.Series() # 비어있는 시리즈
se2 = pd.Series([1,2,3]) # 숫자 1,2,3 이 들어있는 시리즈
se3 = pd.Series([[1,2,3],['a','b','c']]) # 각 [1,2,3] 과 ['a','b','c'] 가 요소인 시리즈
grades = pd.Series(data = [50,70,90], index=['Tom', 'John', 'Jenny'])
grades
print(grades.mean()) # 평균 값
print(grades.std()) # 표준 편차
print(grades.count()) # 갯수
print(grades.describe()) # 전반적인 통계 정보
조건문(boolean)과 함께 사용하여 indexing
print(grades[grades>60]) # 60보다 큰 점수만 필터링
print(grades[(grades>60) & (grades<80)]) # 60보다 크고, 80보다 작은 점수만 필터링

df = pd.DataFrame([10,20,30]) # 데이터 프레임 생성
df
2차원 배열로 저장되기에 Dictionary 형태로 입력 가능
df = pd.DataFrame({'A':[1,2,3], 'B': [10,20,30], 'C':[100,200,300]}) # Dict 형태의 데이터 입력
df
print('Index : ',df.index) # index에 대한 정보
print('Columns : ',df.columns) # 모든 column의 이름
print('Shape : ',df.shape) # 데이터 프레임의 모양
print()
print('Types : ',df.dtypes) # 데이터들의 타입
stock_df = pd.read_csv('stock-data.csv') # 예시 데이터인 주식 데이터 불러오기
stock_df.dtypes
print(stock_df.head())
print(stock_df.tail())
print(stock_df.describe())
print(stock_df.info())
stock_df[['Date','Close','Start']].head() # 전체 컬럼 중, 'Date','Close','Start' 만 선택
new_stock = stock_df[['Date','Close','Start']] # 전체 컬럼 중, 'Date','Close','Start' 만 저장
new_stock.to_csv('stock-data-new.csv',index=False) # 새로운 데이터프레임 csv로 추출
df1 = pd.DataFrame({
'A':[1,2,3],
'B': [10,20,30],
'C':[100,200,300]})
df2 = pd.DataFrame({
'A':[1,2,3,4,5,6],
'D':['a','b','c','d','e','f']})
pd.concat([df1,df2]) # df1과 df2 이어붙이기
pd.merge(df1,df2, on = 'A', how = 'inner') # A 컬럼을 기준으로 df1과 df2 이어붙이기, how = inner
pd.merge(df1,df2, on = 'A', how = 'outer') # A 컬럼을 기준으로 df1과 df2 이어붙이기, how = outer