- 엑셀, 스프레드 시트로 활용
- 구조화된 데이터의 처리를 지원하는 Python 라이브러리
- 고성능 Array 계산 라이브러리인 Numpy와 통합하여 기능제공
- 인덱싱, 연산용 함수, 전처리 함수 등을 제공
- Numpy의 Wrapper 라이브러리
Pandas를 통해 필요한 데이터 추리기 등으로 유용하게 사용가능
import pandas as pd # 라이브러리 호출
1) 기본적인 사용법
1 2 3 | data_url = https://주소 df_data = pd.read_csv(data_url, sep='\s+', headr = None) # 스프레드 시트 형태로 가져올 수 있음 | cs |
2) 데이터
Series - 하나의 Column에 해당하는 데이터 모음 Object
DataFrame - Data Table 전체를 포함하는 Object
Series는 Index로 값을 접근할 수 있다(dict 객체로 활용 가능(
Dataframe은 Series를 모아서 만든 Table, column 이름으로 묶임
1 2 3 | df =DataFrame(raw_data, columns=["age","city"]) # age,city 열 가져오기 df.first_name # series 추출 df["first_name"] # series 추출 | cs |
3) 데이터 접근방법
loc, iloc 사용
del 삭제하기
1 2 3 | df.loc[1] # index location(인덱스 이름) df.iloc[1] # index position(인덱스 위치) df.debt = df.age > 40 # 이렇게 가져오는 경우 많음 | cs |
4) Selection & Drop
1 2 3 4 5 6 7 8 | df["account"].head(3) # 1개의 column 선택 df[["account","street","state"]].head(3) # 1개 이상의 column 선택 df[:3] # column 이름 없이 사용하는 index number는 row 기준 표시 df["account"][:3] # 특정 컬럼의 row index 가져오기 account_series[[0,1,2]] # index 0,1,2 의 값 추출하기 account_series[account_series<3] # boolean index df.index = df["account"] # 특정 column을 index로 지정하기 | cs |
Index number로 접근할 수 있고 index name으로 접근할 수 있다
또한, iloc을 통해서 접근도 가능하다!
1 2 3 4 5 | df.index = list(range(0,15)) # 일반적인 index 설정 df.drop(1) # index number로 drop df.drop([0,1,2,3]) # 1개 이상의 데이터 drop df.drop("city", axis=1) # 축을 기준으로 drop, copy한 버전 반환 df.drop("city", axis=1, inplace=True) # 원본으로 삭제 | cs |
5) Operation
Series operations
1 2 | s1.add(s2) # index 이름이 같은 것끼리 값 더해주기 s1.add(s2,fill_value=0) # NaN 값에 0으로 채워서 더해주기 | cs |
6) Lambda, Map
map함수를 활용하면 data 변환이 유용하다
replace 도 활용가능
1 | df.sex.replace(["male", "female"], [0,1], inplace=True) | cs |
7) Apply
apply는 map과 달리 series 전체에 해당 함수를 적용
입력값이 series 데이터로 입력받아 handling 가능
8) Built-in Function
describe(), unique() 등등...
Handling
Pandas로 활용하는 것은
데이터의 모판을 만드는 것이다.
Data를 가공하여 보다 깔끔한 형태로 Handling
1) Groupby
- SQL 명령어와 같음 (split-apply-combine)
df.groupby("기준컬럼")["적용받는컬럼"].sum()
기준 컬럼을 2개 이상 줄 수 있다
2) Hierarchical index
h_index.index , h_index.unstack() # matrix로 만듬
DB에 보통 쭉 풀어져있는데 이로부터 Feature를 생성함
3) Groupby2
groupby("기준컬럼") # split된 상태로 저장할 수 있음
groupby("기준컬럼").filter(lambda함수) # 필터로 값 출력가능
# aggregation도 활용해서 여러 가지 데이터를 처리할 수 있음
4) Pivot table
1 2 | df_phone = pd.read_csv("csv data") df_phone.pivot_table(["duration"],index= [df_phone.month, df_phone.item],columns=df_phone.network, aggfunc="sum", fill_value=0) | cs |
5) Crosstab
- 특허 두 칼럼에 교차 빈도, 비율, 덧셈 등을 구할 때 사용
- Pivot tavle의 특수한 형태
- user item Rating Matrix 등을 만들 때 사용가능함
6) Merge , Concat
Merge는 SQL 명령어 Merge와 동일, 두 개의 데이터를 하나로 합침
7) DB - persistence
DB connection, Data loading 시 db connection 기능을 제공함
import sqlite 를 통해 sqlite로 가지고 와서 query 처리가능
'Archived(CSE Programming) > Machine Learning' 카테고리의 다른 글
Chap 6. Assignment & Case study (0) | 2019.03.05 |
---|---|
Chap 5-3. Visualization & Handling (0) | 2019.02.20 |
Chap 5-1. Numpy (0) | 2019.02.18 |
Chap 4. Machine Learning Overview & An understanding of data (0) | 2019.02.18 |
Chap 3. Assignment (0) | 2019.02.18 |