나만의 데이터 만들기
시리즈와 데이터프레임 직접 만들기
1 | s = pd.Series(['banana', 42]) |
Series메서드에 리스트를 전달하여 시리즈를 생성
1 | s = pd.Series(['Wes MC', 'Createor'], index=['person', 'who']) |
index인자를 이용해서 인덱스로 사용하고자 하는 문자열을 리스트에 담아 전달하면 된다
Data Frame
1 | scientist = pd.DataFrame({ |
1 | scientist_col = pd.DataFrame( |
- 인자를 사용해
index와colums를 지정할 수 있다
1 | scientist_dict = pd.DataFrame(OrderedDict([ |
- 딕셔너리는 데이터의 순서가 보장되지 않는다.
- 순서가 보정된 딕셔너리를 사용하기 위해
OrderedDirct를 사용한다
시리즈 다루기 (기초)
데이터프레임에서 시리즈 선택하기
1 | scientist = pd.DataFrame( |
loc속성을 이용해서 Willam의 정보를 얻을 수 있다
index, values 속성과 keys 메서드 사용하기
1 | print(first_row.index) |
시리즈 다루기 (응용)
1 | scientist = pd.read_csv('../doit_pandas/data/scientists.csv') |
- 시리즈의
max()min()std()등의 메서드를 호출해서 해당 열의 통계 수치를 알 수 있다
시리즈와 브로드캐스팅
1 | print(ages) |
- 같은 길이의 벡터로 더하기 연산과 곱하기 연산 수행이 가능하다
- 스칼라 값을 곱하거나 더해도 벡터의 모든 값에 스칼라를 적용하여 브로드캐스팅 된다
1 | print(ages + pd.Series([1, 100])) |
- 길이가 다른 벡터를 연산하면 길이를 벗어난 값들은
NaN이 반환되고 길이가 일치하는 만큼 연산이 이뤄진다
1 | rev_ages = ages.sort_index(ascending=False) |
sort_index메서드에ascending인자 값을False로 지정해 인덱스 역순으로 데이터를 정렬가능하다- 벡터와 벡터의 연산은 일치하는 인덱스 끼리 연산을 진행한다
시리즈와 데이터프레임의 데이터 처리하기
1 | born_datetime = pd.to_datetime(scientist['Born'], format='%Y-%m-%d') |
scientist['born_dt']을 사용해서 새로운 열을 만들 수 있다
1 | scientist_dropped = scientist.drop(['Age'], axis=1) |
- 열을 삭제하기 위해
drop()을 사용한다 axis=1을 사용하면 Age 열을 삭제할 수 있다
데이터 저장하고 불러오기
데이터를 피클, CSV, TSV 파일로 저장하고 불러오기
1 | names = scientist['Name'] |
.pickle을 확장자로 가지는 파일을 생성할 수 있다- pickle 파일을 읽어올 때는
read_pickle을 사용해야 한다