5.2.8 중복 색인
is_unique 속성은 해당 값이 유일한지 아닌지 알려준다.
5.3 기술 통계 계산과 요약
pandas 객체는 일반적인 수학 메서드와 통계 메서드를 가지고 있다.
이 메서드의 대부분은 Series나 DataFrame의 로구나 컬럼에서 단일 값(합이나 평균 같은) 을 구하는 축소 혹은 요약 통계범주에 속한다.
DataFrame
df.sum()
df.sum(axis='columns') axis ='columns'또는 axis=1 옵션을 넘기면 각 컬럼의 합을 변환한다.
skipna= False NA가 아니라면 Na값은 제외되고 계산된다.
level: 계산하려는 축인 계층적 색인(다중 색인)이라면 레벨에 따라 묶어서 계산한다.
idxmin이나 idxmax같은 메서드는 최솟값 혹은 최대값은 가지고 있는 색인값과 같은 간접 통계를 반환한다.
df.idxmax()
또 다른 메서드로 누산이 있다.
df.cumsum()
축소나 누산이 아닌 다른 종류의 메서드로 describe가 있는데 , 이 메서드는 한번에 여러 개의 통계 결과를 만들어낸다.
df.describe()
5.3.1 상관관계와 공분산
conda install pandas-datareader :
금융 사이트에서 구한 주식 가격과 시가총액을 담고 있는 다음 DataFrame을 생각
conda 혹은 pip를 통해 설치
import pandas_datareader.data as web
import pandas as pd
all_data = {ticker:web.get_data_yahoo(ticker) for ticker in ['AAPL','IBM','MSFT','GOOG']}
price = pd.DataFrame({ticker:data['Adj Close'] for ticker, data in all_data.items()})
volume = pd.DataFrame({ticker:data['Volume'] for ticker,data in all_data.items()})
returns = price.pct_change()
returns.tail()
시계열 데이터
corr메서드와 cov메서드
corr메서드는 NA가 아니며 정렬된 색인에서 연속하는 두 Series에 대해 상관관계를 계싼하고 cov메서드는 공분산을 계산
print(returns['MSFT'].corr(returns['IBM']))
print(returns['MSFT'].cov(returns['IBM']))
좀 더 편리한 문법
returns.MSFT.corr(returns.IBM)
returns.corr()
DataFrame의 corrwith메서드를 사용하면 다른 Series나 DataFrame과의 상관관계를 계산한다.
Series를 넘기면 각 컬럼에 대해 계산한 상관관계를 담고 있는 Series를 반환한다.
returns.corrwith(returns.IBM)
DataFrame을 넘기면 맞아 떨어지는 컬럼 이름에 대한 상관관계를 계산한다.
returns.corrwith(volume)
axis ='columns'옵션을 넘기면 각 컬럼에 대한 상관관계와 공분산을 계산한다. 모든 경우 데이터는 상관관계를 계산하기 전에 색인의 이름순으로 정렬된다.
5.3.2 유일값 값 세기 멤버십
중복되는 값을 제거하고 유일값만 담고 있는 Series를 반환한다.
obj = pd.Series(['c','a','d','a','a','b','b','c','c'])
uniques = obj.unique()
print(uniques)
uniques.sort()를 이용해서 정렬
value_counts메서드는 Series 에서 도수를 계산하여 반환한다.
obj.value_counts()
value_counts에서 반환하는 Series는 담고 있는 내림차순으로 정렬한다.value_counts메서드는 pandas의 최상위 메서드로 , 어떤 배열이나 순차 자료구조에서도 사용할 수 있다.
pd.value_counts(obj.values, sort = False)
isin 메서드는 어떤 값이 Series에 존재하는지 나타내는 불리언 벡터를 반환하는데, Series나 DataFrame의 컬럼에서 값을 골라내고 싶을 때 유용하게 사용할 수 있다.
print(obj)
mask = obj.isin(['b','c'])
print(obj[mask])
isin과 관련이 있는 Index.get_indexer메서드는 여러 값이 들어 있는 배열에서 유일한 값의 색인 배열을 구 할 수 있다.
DataFrame의 apply함수에 pandas.value_counts를 넘기면 다음과 같은 결과를 얻을 수 있다.
data = pd.DataFrame({'Qu1':[1,3,4,3,4],'Qu2':[2,3,1,2,3],'Qu3':[1,5,2,4,4]})
result = data.apply(pd.value_counts).fillna(0)
result
06. 데이터 로딩과 저장 파일 형식
6.1 텍스트 파일에서 데이터를 읽고 쓰는 법
read_csv와 read_table 을 주로 사용
cat명령을 사용하면 파일의 내용을 확인 할 수 있다.
na_values 옵션은 리스트나 문자열 집합을 받아서 누락된 값을 처리한다.
skiprows를 컬럼을 띄운다.
pandas NA나 NULL 처리
pd.read_csv('',na_values=['NULL'])
pd.isnull(data)
sentinels={'message':['foo','NA'],'something':['two']}
pd.read_csv('',na_values=sentinels)
'책 > python for Data Analysis' 카테고리의 다른 글
06-3. 데이터 로딩과 저장 파일 형식 07-1. 데이터 정제 및 준비 (0) | 2021.02.07 |
---|---|
06-2. 데이터 로딩과 저장 파일 형식 (0) | 2021.02.07 |
05-1. pandas 시작하기 (0) | 2021.01.31 |
04-2. NumPy 기본: 배열과 벡터 연산 05. pandas 시작하기 (0) | 2021.01.31 |
04-1. NumPy 기본: 배열과 벡터 연산 (0) | 2021.01.31 |