파이썬으로 시작하는 데이터 분석
alice 온라인 -> '파이썬으로 시작하는 데이터 분석'
여기에다가 기록하도록 하겠다.
※ 루프는 느리다.
[NumPy]
- array = 단일타입 (array처럼 여러개 안댐)
- np.linspace(0,1,5) -> 0~1을 5구간으로 나눔
<난수>
- np.ndim : 몇차원?
- np.concatenate([x,y]) : x array + y array (이어붙이기)
- axis=0 아래방향으로, axis = 1 옆방향으로
- np.split('np', [x], axis=0) : np의 x번째를 axis=0을 기준으로 2개의 array로 나누기
- 기본연산 o
- broadcasting : shape이 다른 array끼리 연산 // 이거 인공사부분에서 다뤄서 세세히 안쓰겠다.
- 집계함수 : sum(), min, max, mean
마스킹연산 : True, False를 통해 인덱싱
ex) x[x>3]
[Pandas]
Series : numpy, array가 보강된 형태, Date, Index를 가짐 (dtype='int64')
- dic와 비슷하고 dic로 만들 수 있음
DataFrame : 여러개의 series가 모여서 행, 열을 이룬 데이터 (dtype='object')
- series 연산자 그대로 사용
※ df['name'] = values --> name열과 해당 values를 df에 추가
<저장 & 불러오기>
df.to_csv("경로") : .csv 파일 저장
df.to_excel("경로") : .xlsx 파일 저장
df.read_csv("경로") : .csv 파일 불러오기
df.read_excel("경로") : .xlsx 파일 불러오기
※ e+0.n 의 뜻 : 앞의 값 * 10^n
// 궁금증이 여기서 풀림ㅋㅋ
<인덱스 선택>
loc : 명시적인 인덱스 참조
iloc : 정수 인덱싱/ 슬라이싱
<컬럼 선택>
df["caloumn"]
컬럼 1개 -> series
컬럼 리스트로 N개 -> DataFrame
(위 두개는 타입이 다르게 나옴)
<누락 데이터>
df.isnull() : nan, None 인 경우 True
df.notnull()
df.dropna() : 누락된 부분 행 삭제
df.fillna('~') : nan -> '~' 대체
A.add(B, fill_value=0)
add --> 사칙연산, 함수로사용
fill_value = 0 --> nan -> '0'으로 대체
(만약 A(2차원), B(3차원)일경우 A의 비어있는 값에 '0'이 들어가고 연산)
<값으로 정렬>
df.sort_values('컬럼', ascending='bool')
- 해당 값들로 sort
- ascending = True 오름차순, False 내림차순
df.sort_values(['컬럼1', '컬럼2']) : 컬럼1 sort 후 컬럼2 sort
[Pandas 심화]
<조건검색>
1. df["A"].str.contains("cat") : A에 cat이 포함되나?
2. df["A"] == "cat"
3. 정규표현식
4. df.query("A<0.5 and B>0.3")
<함수>
(둘다 같은 의미)
df["num"].apply(square) : square(x)함수 사용
df["num"].apply(lambda x : x**2)
df.컬럼.replace({'a':0}, inplace='bool') : 데이터 값만 교체
- inplace가 True이면 df가 바로바뀜 (default = False)
<group>
df.groupby('key') : 'key' 컬럼의 값들로 묶음
df.groupby('key').aggregate(['min',np.median, max]) : 집계를 한번에 계산
filter : 데이터 필터링
df.groupby('key').filter('함수') : 함수 내용으로 필터링 // 당연히 함수는 따로 선언되어 있겠죠?
※ 그루핑된 그룹에 apply 적용 가능
df.groupby('시도').get_group('충남') : '시도'로 묶인 그룹에서 '충남'의 이름을 가진 데이터를 가져옴
<multoindex>
(예시)
index = [ ['a', 'a', 'b', 'b'], [1,2,1,2,] ]
인덱스, 컬럼 모두 다중일 경우 인덱싱은 계층적으로 함 (인덱스 -> iloc, loc 사용)
pivot_tavle
- index : 행 인덱스 key
- column : 열 인댁스 라벨링될 값
- value : 분석 할 데이터
내가 정리한 pivot_table 그림^_^
(문제풀때 구성이 자꾸 헷갈려서 위에처럼 아예 그리고 한다 ㅋㅋㅋㅋㅋ)
[문제]
여러 실습중 마지막 문제를 가져왔따.
[코드]
문제 풀면서도 헷갈렸다.
옆에 지시문이 있어서 그거보면서 했당.
// 수업내용이 이 인강을 통해서 정리되는 기분이 들어서 좋았다.!
앞으로 수업 진도에 맞추어서 인강을 적극 활용해야겠다고 다짐한다.
'데이터분석 > 데이터분석' 카테고리의 다른 글
[pandas] 인덱스 재정렬, 결측치 변환 (0) | 2020.09.14 |
---|---|
[alice] 파이썬 크롤링 (0) | 2020.09.04 |
[alice] 월드컵 데이터 분석(이수) (64) | 2020.07.21 |
[alice] Matplotlib (0) | 2020.07.19 |
댓글