| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- Git
- 배포
- 파이썬 #python #Comprehension
- 파이썬 #python #전역변수 #지역변수 #eval
- redis
- 민감 정보 관리
- 파이썬 #python #지역함수
- 파이썬 #python #file #i/o #input #output
- 파이썬 #python #enumerate
- 프로그래머스
- 연산자메서드
- docker
- 파이썬 #python #예외처리 #exception
- aw3
- 파이썬 #python #가변매개변수 #키워드가변매개변수 #args #kwargs
- 파이썬 #python #filter #map #reduce
- PostgreSQL
- EC2
- 사용자정의예외
- 파이썬 #python #class #클래스 #상속
- 파이썬 #python #os #os.path #glob
- spring boot
- 약수 수하기
- 파이썬 #python #lambda #람다
- aws
- 파이썬 #python #모듈 #module #import #random #time #calendar #sys
- jsonb
- 파이썬 #python #함수 #function
- 파이썬 #python #docstring
- 파이썬기본문법 #파이썬 #python
- Today
- Total
목록Python/Pandas (14)
Yeonnnnny
■ merge() 함수 - 완전히 다른 df끼리 합침 (concat과는 다름) - DB의 join연산과 유사함 (공통키 존재) - 두 DataFrame에사 공통열 (Primary Key, Foreign Key) 필요 - shape이 다른 두 Dataframe 생성 import pandas as pd import numpy as np df1 = pd.DataFrame( {'번호':[10,20,30,40,50,60,70], #PK '이름':['홍길동','임꺽정','전우치','손오공','저팔계','사오정','삼장법사']} ) print(df1.shape) display(df1) df2 = pd.DataFrame( {'번호':[10,10,20,40,50,40,40,70,80], # FK '금액' : [1000,..
■ map() 함수의 이용 ※ Series 객체.map() 이면, 매개 변수 내에 연속된 데이터 따로 넣어주지 않아도 됨 import pandas as pd import numpy as np s = pd.Series(np.arange(10)) s.map(lambda x:x**2) ■ map() 함수를 이용한 데이터 수정 : 데이터 전처리 중 하나인 labeling 이나 one-hot encoding 처리 시 사용(명목형 데이터-> 숫자 데이터로 반환) s = pd.Series(['A','B','B','A','C','B']) map_data = {'A':0,'B':1,'C':2} s.map(map_data) # labeling ■ map()을 Dataframe에 적용 ※ csv 파일 읽어서 데이터프레임 활..
■ pd.date_range() - start : 시작 날짜 - period : 생성할 timestamp 개수 - freq : 시간 간격 (D : 1일(기본값), nD : n일 간격, W : 1주, M : 월말, MS : 월초, Q : 분기말, QS :분기초, A : 연말, AS:연초) - 202311110날짜부터 1일씩 증가하면서 6개의 timestamp생성 dates = pd.date_range('20231110',periods=6) print(type(dates)) print(dates) - 202310508부터 월 초 간격으로 증가하면서 6개의 timestamp생성 (입력된 월의 연초는 지났으므로 다음 달 부터 생성) dates = pd.date_range('20230508',periods=6,f..
■ 그룹핑 - 특정 값을 기준으로 몇 개의 그룹으로 분할하여 처리하는 방식 ※ 데이터 준비 df = pd.DataFrame({'A':['chol','young']*3+['chol'], 'B':['one','one','two','one','two','two','one'], 'C':np.random.randn(7), 'D': np.random.randn(7)}) df □ 그룹 객체 만들기 grouped = df.groupby('B') print(grouped) for key, group in grouped: print('key : ',key) print('그룹 개수 : ',len(group)) print(group.head()) print('-'*40) # 특정 그룹만 선택 가능 one_group=group..
■ pd.pivot_table(df), df.pivot_table() - 피벗 테이블 : 기존 데이터를 기반으로 합계, 평균 들의 다양한 통계를 산출할 목적으로 새로운 표를 만드는 기능 - df.pivot_table(index=행방향 컬럼, columns=열방향 컬럼, values=집계대상 컬럼, aggfunc=구할 통계량(sum/mean/...)) ※ 데이터 준비 df = pd.DataFrame(np.arange(16).reshape(4,4), index=list('ABCD'), columns=list('abcd')) year_df = pd.DataFrame([2019,2020,2019,2020], index=list('ABCD'),columns=['year']) class_df = pd.DataFra..
※ 데이터 준비 import pandas as pd import numpy as np df = pd.DataFrame({'k1':['one','two']*3+['two'], 'k2':[1,1,2,3,3,4,4]}) df ■ 중복 데이터 검사 - df.duplicated() - 각 행의 중복 여부를 검사하여 True/False로 알려줌 df.duplicated() □ df. drop_duplicates() : 모든 컬럼에 대해 중복값을 갖는 행을 제거함 df.drop_duplicates() 중복 값이 존재하는 행 지우기 원본 □ df. drop_duplicates(컬럼명 목록) - 매개변수로 주어진 컬럼명 목록에 같은 값을 갖는 행 제거함 - unique 값 하나만 남기고 나머지 다 삭제 df['k3'] ..
※ 데이터 준비 import numpy as np import pandas as pd data = np.random.randint(0,10,(5,5)) df = pd.DataFrame(data,index=list('ABCDE'),columns=list('abcde')) df ※ 결측값 설정 df.at['B','d']=np.nan df.at['D','e']=np.nan df ■ df.isna(), df.notna() - 데이터가 NaN인지 아닌지 검사 checked_nan = df.isna() print(checked_nan) print() # 컬럼별 결측치 개수 print(checked_nan.sum()) print() # 행별 결측치 개수 print(checked_nan.sum(axis=1)) chec..
○ 모든 집계함수는 axis=0(열 단위)을 기본값으로 가짐 ○ df.mean() : 각 행/열에 대한 평균 산출 ○ df.std() : 각 행/열에 대한 표준편차 산출 ○ df.min() : 각 행/열에 대한 최솟값 산출 ○ df.max() : 각 행/열에 대한 최댓값 산출 ○ ... [문제] Series, Dataframe 생성 및 연산 1. 각 컬럼 값은 Series 객체로 생성 2. 앞서 만들 Series객체를 이용해 DF생성 3. 각 과목의 합계 계산한 컬럼 추가 4. 각 과목의 평균 계산한 컬럼 추가 1-2) 각 컬럼 Series 객체 생성 후 데이터 프레임 만들기 import pandas as pd import numpy as np index_list = ['홍길동','임꺽정','전우치','..