데이터 분석을 위한 라이브러리.2
Pandas
파이썬의 라이브러리 중 하나
구조화된 데이터를 효과적으로 처리하고 저장
Array 계산에 특화된 NumPy를 기반으로 설계
Series데이터
Numpy의 array가 보강된 형태
data와 index를 가지고 있음
dtype 인자로 데이터 타입을 지정할 수 있음
data = pd.Series([1,2,3,4], dtype = "float")
print (data.dtype) #-> float64
인덱스를 지정할 수 있고 인덱스로 접근 가능
Dictionary를 활용하여 Series생성 가능
population_dict = {
'china':141500,
'japan':12718,
'korea':5180,
'usa':32676
}
population = pd.Series(population_dict)
DataFrame
여러개의 Series가 모여서 행과 열을 이룬 데이터
Dictionary를 활용하여 DataFrame 생성 가능
data ={
'country': ['china','japan','korea','usa'],
'gdp': [1409250000, 516700000, 169320000, 2041280000],
'population':[141500, 12718, 5180, 32676]
}
country = pd.DataFrame(data)
country = country,set_index('country')
1.Dictionary( data={key:value} -> 2.sireis (series([1.2.3.4]) -> 3.dataFrame (1 -> 3 번으로가능)
DataFrame속성 확인방법
print(country.shape) # -> (4,2)
print(country.size) # -> 8
print(country.ndim) # -> 2
print(country.values) # [[1409250000 141500]
[ 516700000 12718]
[ 169320000 5180]
[2041280000 32676]]
index 와 column에 이름 지정
country.index.name = "Country" # 인덱스에 이름 지정
country.columns.name = "Info" # 컬럼에 이름 지정
데이터 프레임 저장 및 불러오기 가능
#저장
country.to_csv("./country.csv") # csv (comma separated values)
country.to_excel("country.xlsx")
#불러오기
country = pd.read_csv("./country.csv") # comma separated values)
country = pd.read_excel("country.xlsx")
데이터 선택 및 변경하기
데이터 선택 - Indexing/slicing
.loc : 명시적인 인덱스를 참조하는 indexing/slicing
.iloc : 파이썬 스타일의 정수 인덱스 indexing/slicing
.loc
.iloc
컬럼명을 알고 있다면 활용하여 DataFrame에서 데이터 선택 가능
Masking 연산이나 query 함수를 활용하여 조건에 맞는 DataFrame행 추출 가능
country[country['population'] < 10000] # masking 연산 활용
country.query("population > 100000") # query 함수 활용
결과값
Series도 numpy array처럼 연산자 활용 가능
gdp_per_capita = country['gdp'] / country['population']
country['gdp per capita'] = gdp_per_capita
결과값
데이터 추가/수정 -> list or Dictionary
df = pd.DataFrame(columns = ['이름','나이','주소']) #DataFrame 생성
df.loc[0] = ['길동','26','seoul'] # list로 데이터 추가
df.loc[1] = {'이름':'철수','나이':'25','주소':'인천'} # Dictionary로 데이터 추가
df.loc[1,'이름'] = '영희' #명시적 인덱스 활용하여 데이터 수정
결과값
데이터 변경 -> NaN 컬럼 추가 (NaN = Not a Number)
NaN값으로 초기화 한 새로운 컬럼 추가
df['전화번호'] = np.nan # 새로운 컬럼 추가 후 초기화
df.loc[0,'전화번호'] = '01012341234' # 명시적 인덱스 활용하여 데이터 수정
결과값
데이터 변경 -> 컬럼 삭제
dataFrame에서 컬럼 삭제 후 원본 변경
df.drop('전화번호',axis = 1, inplace = True) # 컬럼삭제
# axis = 1 -> 열방향 / axis = 0 :행 방향
# inplace = True : 원본 변경 / inplace = False : 원본 변경 x
결과값
Masking 연산의 중첩은 & query활용의 중첩은 and!
Author And Source
이 문제에 관하여(데이터 분석을 위한 라이브러리.2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@phphll/데이터-분석을-위한-라이브러리.2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)