-
[21.02.22] pandas와 친해지기 첫째 날AI/study log 2021. 8. 30. 00:03728x90
참고: pandas 공식 홈페이지 10 minutes to pandas
데이터사이언스 스쿨 pandas1. Pandas 클래스
1-1. Series 클래스 : numpy의 '1차원 배열'과 유사, but index 붙일 수 있음!
Series=값(values)+인덱스(index)
-> 시리즈 생성 시에 value값과 인덱스 값 모두 넣어줘야 함!!
s=pd.Series([1,2,3,4],index=["a","b","c","d"])
+) 만약 인덱스 값 지정 x? -> 0부터 시작! ex) pd.Series(range(10,24))
->데이터 접근- 인덱스 접근은 .index로!
- 값 접근은 .values로!
- 시리즈 데이터 이름 붙이는 건 .name
- 인덱스 이름 붙이는 건 .index.name
->인덱싱
- 배열 인덱싱 (numpy에서 가능했던!)
- 인덱스 라벨을 이용한 슬라이싱 ex) s["a":"c"]와 같은 슬라이싱 가능 => 딕셔너리 자료형과 유사
-> "딕셔너리 자료형"으로 Series 만들 수 있다!
s2=pd.Series({'서울':[~~~],'부산':[~~~],'대구':[~~~]})+) 순서도 인덱스 리스트를 통해 지정 가능함
s2=pd.Series({'서울':[~~~],'부산':[~~~],'대구':[~~~]},index=['부산','대구','서울'])
+) 딕셔너리처럼 데이터 갱신 또는 추가 가능!- 갱신: s["부산"]=25
- 추가: s["울산"]=10
- 삭제: del s["서울"]
1-2. DataFrame 클래스 : "열 시리즈의 딕셔너리"라고 생각하면 좋음!
* Series와의 차이점: Series는 1차원 벡터 데이터에 행 방향 index을 븥인 것이지만, DataFrame은 '2차원' 행렬 데이터에 index 붙인 것! (2차원이라서 행 데이터의 이름인 행 인덱스와, 열 데이터의 이름인 열 인덱스를 붙일 수 있음!)
->DataFrame 생성- data 준비-> 딕셔너리 (각각의 열 이름[키]+각각의 열들의 값을 가진 리스트[값])
- columns 준비-> 열 이름 리스트
- index 준비 -> 행 이름 리스트
- df=pd.DataFrame(data,index=[~~~],columns=[~~~])
-> DataFrame 데이터 접근- data 값 접근 : df.values
- 행 값 접근 : df.index
-df.index.name - 열 값 접근 : df.columns
-df.columns.name
-> DataFrame 열 데이터 갱신, 추가, 삭제
- 갱신: df["a"]=df["a"]*10
- 추가: df["g"]=df["a"]-df["b"]
- 삭제: def df["a"]
-> DataFrame 인덱싱
(1) 열 인덱싱
- 열 인덱싱
- 1개인 경우:
1) Series 반환 -> df["a"]
2) DataFrame 반환 -> df[["a"]] - 여러 개인 경우: DataFrame 반환 -> df[["a","b"]]
- 1개인 경우:
- 행 인덱싱 -> "무조건 슬라이싱"
- 숫자 인덱싱 df[1:3],df[:1]
- 문자 인덱싱 df["a":"d"]
- 개별 데이터 인덱싱 : df[열][행]
2. 데이터 입출력
-csv, html, excel, json 등 지원
1) csv 파일 입력- 기본: pd.read_csv(' .csv')
- 열 인덱스 지정: pd.read_csv(' .csv',names=[~~~])
- 특정 열을 행 인덱스로 지정하고 싶을 때: pd.read_csv(' .csv',index_col=" ")
- 행 건너뛰기: pd.read_csv(' .csv',skiprows=[0,2])
- 특정 값을 NaN으로 바꾸기: pd.read_csv(' .csv',na_values=[])
728x90'AI > study log' 카테고리의 다른 글
[21.03.03] pandas와 친해지기 셋째 날 (0) 2021.08.30 [21.02.28] pandas와 친해지기 둘째 날 (0) 2021.08.30 [21.02.17] numpy와 친해지기 셋째 날 (0) 2021.08.30 [21.02.16] numpy와 친해지기 둘째 날 (0) 2021.08.29 [21.02.15] numpy와 친해지기 첫째 날 (0) 2021.08.29