데이터 처리와 분석에 사용되는 파이썬 라이브러리
다양한 데이터 포맷을 다룰 수 있음
데이터프레임 객체로 모든 데이터를 처리
• 데이터가 여러 출처에서 수집되어 형태나 속성이 다양한 경우, 컴퓨터가 이해할 수 있도록 동일한 구조로 통합되어야 한다.
• 판다스 라이브러리는 시리즈(Series)와 데이터프레임(DataFrame)이라는 데이터 형식을 제공한다.
• 시리즈(Series)는 숫자의 나열인 1차원 배열 형식이고, 데이터프레임(DataFrame) 은 행과 열로 이루어진 2차원 배열 형식으로 만들 수 있어 데이터 분석 실무에서 자주 사용한다.
• 데이터를 다룰 수 있는 내장함수(Built-infunction)을 제공한다.
1.판다스라이브러리호출
Import pandas as pd
2.데이터객체데이터프레임으로변환
infor2020 = pd.DataFrame({‘col1’:list1,...’coln’:listn})
3.CVS파일불러오기
infor2020 = pd.read_csv('/content/drive/health_infor2020.csv')
시리즈: 인덱스와 값으로 구성된 1차원 배열
인덱스로 값에 접근 가능
딕셔너리 타입을 활용하면, 인덱스를 문자로 활용 가능
DataFrameName.iloc[index_Number] DataFrameName.iloc[index_start:index_end]
DataFrameName.iloc[ : , column_Number]
DataFrameName.iloc[ : , column_start: column _end]
DataFrameName.iloc[index_start:index_end , column_start: column _end]
DataFrameName.columnName
DataFrameName[“columnName”]
DataFrameName[[“columnName1”, ... ,“columnName_n”]]
DataFrameName [[“NewcolName1”, ... ,“NewcolName_n”]] = DF [[“ColName1”, ... ,“ColName_n”]]
DataFrameName.loc[last_Index+1] = [값1,값2,...,값n]
DataFrameName.loc[last_Index+1]=dfName.loc[추가할 index]
인덱스가 겹치면 추가가 아니라 기존 값을 바꿔치기 하게 됨
NEWDF = DataFrameName.append(dfName.loc[startIndex:endIndex])
NEWDF = DataFrameName.append(dfName)
결합된 데이터프레임을 객체로 만들어야 결합 결과가 저장됨
NEWDF = pd.concat([DataFrameName,dfName])
DataFrameName.isnull()
DataFrameName.notnull()
DataFrameName.dropna(inplace=True)
DataFrameName.sort_values(‘col’)
DataFrameName.sort_values(‘col’, ascending=False)
DataFrameName.sort_values([‘col1’,’col’2,...,’coln’], ascending=[True,...,False])
DataFrameName[’col1’] == 값
#== 외에 <, >,>=,<=,!= 조건 연산자 활용 가능
DF[(DF[’col1’] == 값) & (DF[’col2’] > 값)]
#& 외에 |(or) 연산자 활용 가능
DF[DF.col1.str.match(‘문자열’)]
DF[DF[‘col1’].str.contains(‘문자열’)]
DataFrameName.replace({대체될값1:대체할값1,..., 대체될값n:대체할값n},inplace=True)
DF[‘처리할칼럼’].apply(처리에사용할함수)
DF[‘함수가적용된새로운열’] =DF[‘처리할칼럼’].apply(처리에사용할함수)
dfName[‘col_Name’].mean()
dfName[‘col_Name’].sum()
dfName[‘col_Name’].max()
dfName[‘col_Name’].min()
dfName[[‘col1’,...,’coln’].groupby(‘집계기준열’).mean()
dfName[[‘col1’,...,’coln’].groupby(‘집계기준열’).sum()
dfName[[‘col1’,...,’coln’].groupby(‘집계기준열’).max()
dfName[[‘col1’,...,’coln’].groupby(‘집계기준열’).min()
dfName[[‘col1’,...,’coln’].groupby(‘집계기준열’).aggregate([‘min’,’mean’,...)
dfName[[‘col1’,...,’coln’].groupby(‘집계기준열’).aggregate({‘col1’:‘min’,...,’coln’:’mean’})
dfName[[‘col1’,...,’coln’].groupby(‘집계기준열’).get_group(’col’)
dfName[[‘col1’,...,’coln’].groupby(‘집계기준열’).apply(lambda x: x.max()-x.min())
dfName.groupby(‘집계기준열’).filter(함수)
dfName.pivot_table(index=’행인덱스컬럼’,column=‘열인덱스컬럼’,values=‘요약할컬럼’)
dfName.pivot_table(index=’행인덱스컬럼’,column=‘열인덱스컬럼’, values=‘요약할컬럼’,aggfunc=[‘min’,...])
• 1차원/2차원/3차원배열
Array_Name=np.array([원소1,...,원소n])
Array_Name=np.array(리스트객체)
Array_Name[index_number]
Array_Name[start_index_num:]
Array_Name[: end_index_num]
Array_Name[:: step_num]
Array_Name.dtype
Array_Name=np.arange(시작값, 마지막값+1, step) Array_Name=np.random.random(생성할 난수 갯수)
Array_Name=np.random.random(생성할 난수 갯수, size=(행,열)) Array_Name=np.random.randint(생성할 정수 시작, 끝 수, size=(행,열))
Array_Name=np.reshape((행,열))
Array_Name=np.concatenate([array1,array1])
Matrix_Name=np.concatenate([matrix1, matrix2], axis=0) # 위아래
Matrix_Name=np.concatenate([matrix1, matrix2], axis=1) # 양 옆
Matrix_Name1, Matrix_Name2=np.split(matrix, [위에 둘 행 갯수], axis=0) # 위 아래
Matrix_Name1, Matrix_Name2=np.split(matrix, [왼쪽 에 둘 열 갯수], axis=1) # 양 옆
Array_Name + 숫자
Array_Name - 숫자
Array_Name * 숫자
Array_Name / 숫자
np.sum(Array_Name)
np.mean(Array_Name)
np.max(Array_Name)
np.min(Array_Name)
np.sum(Matrix_Name) #모든원소
np.mean(Matrix_Name)
np.max(Matrix_Name,axis=0) #열기준
np.min(Matrix_Name, axis=1) # 행 기준
Array_Name < 숫자
Array_Name[Array_Name < 숫자]
Matrix_Name > 숫자
Matrix_Name[Matrix_Name > 숫자]
• 시각화에 필요한 다양한 그래프 형식과 디자인 기능을 제공하는 라이브러리
• 다양한 형식의 데이터를 입력 받을 수 있지만, 넘파이 배열이 기본
• Pyplot 모듈은 MATLAB과 같은 인터페이스를 제공하고, 가장 많이 사용됨
• 그래프를 활용하면, 데이터의 구조와 패턴을 파악하기 편리하다.
Import matplotlib.pyplot as plt
fig=plt.figure()
ax=plt.axes()
plt.plot(x,y,options....)
산점도 그리기
plt.scatter(x,y,options....)