#20191219 Pandas 시작
where python
- 도커 기본 사용법
docker run --rm --name eda -itd -u vscode -p 8888:8888 -p 8088:8088 -p 6006-6015:6006-6015 -e JUPYTER_RUN=yes -v /c/Users/user/PNU_201912/eda:/home/vscode/notebooks/eda mrsono0/devremotecontainers:eda
docker commit vmelove/eda
docker run --rm --name eda -itd -u vscode -p 8888:8888 -p 8088:8088 -p 6006-6015:6006-6015 -e JUPYTER_RUN=yes -v /c/Users/user/PNU_201912/eda:/home/vscode/notebooks/eda vmelove/eda
docker push vmelove/eda
docker pull vmelove/eda
docker logs --tail 30 eda
를 실행시켜서 token을 확인후에
http://192.168.99.100:8888 하고 password에 token입력
-애저 클라우드 환경
-Colab ->에서도 jupyter 노트북을 실행가능
-머신러닝을 사용할때 이점이 있다
tuple
tuple(튜플)은 불변한 순서가 있는 객체의 집합입니다.
list형과 비슷하지만 한 번 생성되면 값을 변경할 수 없습니다.
REPL에서 확인해봅니다.
list와 마찬가지로 다양한 타입이 함께 포함될 수 있습니다.
dictionary
딕셔너리 타입은 immutable한 키(key)와 mutable한 값(value)으로 맵핑되어 있는 순서가 없는 집합입니다.
REPL에서 확인합니다.
일반적인 딕셔너리 타입의 모습입니다. 중괄호로 되어 있고 키와 값이 있습니다.
list
순서가 있는 수정가능한 객체의 집합입니다.
수정, 삭제, 추가가 가능합니다.
list 는 [] 대괄호로 작성되어지며, 내부 원소는 ,로 구분됩니다.
REPL에서 확인하겠습니다. 일반 list 입니다.
set
set은 수학에서 이야기하는 집합과 비슷합니다.
순서가 없고, 집합안에서는 unique한 값을 가집니다.
그리고 mutable 객체입니다.
def test(a,b,c=1)
def test(a,b=2,c=3)
함수를 사용할때에 default 파라미터 주의
람다식
from a import b
a안에 잇는 b함수를 import하겠다
as
모듈 import할떄 별명 지정
class
데이터와 메소드를 합쳐놓은 클래스
정규표현식
-Pandas는 list의 확장판이다
import pandas as pd
df = pd.read_csv('../data/gapminder.tsv',sep='\t')
print(df.head())
print(type(df))
df의 type 정보
print(df.shape)
df의 모양
print(df.columns)
df의 columns
print(df.dtypes)
print(df.info())
country_df = df['country']
dictionary의 값을 하나만 가져올때
print(type(contry_df))
print(country_df.head())
print(subset.tail())
print(df.loc[0])
print(df.loc[99])
number_of_rows = df.shape[0]
print(df.shape[0])
last_row_index = number_of_rows - 1
print(df.loc[last_row_index])
df.shape[0]으로 인해서 마지막값을 알수있다
print(df.tail(n=1))
print(df.tail(n=2))
print(df.loc[[0,99,999]])
여러개의 list를 지정하여서 저 리스트만큼 가져올수있다
subset_loc = df.loc[0]
subser_tail = df.tail(n=1)
print(type(subset_loc))
print(type(subser_tail))
tail은 dataframe, loc는 series로 변환
print(df.iloc[1])
세로로 리스트1번에 접근
subset = df.loc[:, ['year','pop']]
print(subset.head())
:은 처음부터 마지막까지인데 year와 pop만 처음부터 끝까지 가져와라
subset = df.loc[0:3, ['year','pop']]
print(subset.head())
subset = df.iloc[:, [2,4,-1]]
print(subset.head())
-1때문에 마지막것을 뜻한다
small_range = list(range(5))
print(small_range)
subset = df.iloc[:, small_range]
print(subset.head())
small_range = list(range(0,6,2))
subset = df.iloc[:, small_range]
print(subset.head())
subset = df.iloc[:, :3]
print(subset.head())
처음부터 마지막까지 row를 가지고오고
3번째 까지만 행을 가져오는것
print(df.iloc[[0,99,999], [0, 3, 5]])
열과 행을 지정해줘서 가져오기
print(df.groupby('year')['lifeExp'].mean())
DB와 비슷하게 groupby를 사용할수있다
multi_group_var = df.groupby(['year', 'continent'])[['lifeExp','gdpPercap']].mean()
print(multi_group_var)
데이터를 합쳐준다
print(type(multi_group_var))
print(df.groupby('continent')['country'].nunique())
중복되는 것을 확인하는것
###??질문
DataFrame과 series의 차이는 무엇일까?