#2. Pandas PLUS
Colab Link: pandas PLUS (~220801).ipynb
pandas PLUS (~220801).ipynb
Colaboratory notebook
colab.research.google.com
*HUFS-QMS codeDay 수업 내용 일부입니다.
2022.07.22 - [QMS_hufs/python_Basic] - #1. Pandas
#1. Pandas
Colab Link: 220719_pandas (~220801).ipynb 220719_pandas (~220801).ipynb Colaboratory notebook colab.research.google.com *HUFS-QMS codeDay 수업 내용 일부입니다. import pandas as pd #파일을 우측 col..
tsi-yejin.tistory.com
위 게시물에 이어 추가적인 pandas 내용을 담았습니다.
import pandas as pd
data = pd.read_csv('/content/city_popul.csv')
data
row를 부분적으로 선택
pd.DataFrame[시작row번호:끝row번호]
data_choice = data.iloc[3:6, 1:4]
data_choice.to_csv('data_choice.csv', index = False)
data_choice
column과 row를 선택하는 방법
loc: 인덱스로 접근(행열의 이름으로 가능)
iloc: 우iㅊi로 접근
loc
pd.DataFrame.loc
data.loc[[0,2,4,6,7,9], ['인구수', '남자','여자']]
data.loc[2:5, '인구수':'여자']
#2:5로 입력했을 때 5행도 출력됨
#5번째 행아니고 5행!!!
iloc
pd.DataFrame.iloc
우iㅊi로 접근
data.iloc[[2,3,4,5],[1,3]]
data.iloc[2:5, 1:]
iloc는 거꾸로 접근이 가능합니다
data.iloc[-5:, -3:]
통계 함수
특정 column의 고유값을 알고 싶다: unique()
data['도시'].unique()
특정 column의 고유값이 몇 개 있는지 알고 싶다: value_counts()
data['도시'].value_counts()
수치를 이용한 함수(9)
각 column의 합계: sum()
각 column의 최대값: max()
각 column의 최소값: min()
특정 column의 최대값의 인덱스: idmax()
특정 column의 최소값: idmin()
각 column의 평균: mean()
각 column의 중앙값: median()
각 column의 분산: var()
각 column의 표준편차: std()
df = data.iloc[:10, 1:]
df #수치로만 구성된 데이터로 새로운 데이터 프레임 생성
df.sum()
df['인구수'].idxmax() #인구수 column에 최댓값의 인덱스
df['인구수'].idxmin() #인구수 column에 최솟값의 인덱스
data.loc[9]['도시']
data.loc[7:9]['도시']
data.loc[df['인구수'].idxmin()]['도시']
#인구수 column에서 최솟값을 가진 위치에
기존 column들을 조합하여 새로운 column을 만드려고할 때
+, -, , /, //, %, *, +=, -=, =, /=, //=, %=, *=
data['남자+여자'] = data['남자']+data['여자']
data
data['남자-여자'] = data['남자']-data['여자']
data
data['남자-여자_절대값'] = data['남자-여자'].abs()
data
data['남자/여자'] = data['남자']/data['여자']
data
상수를 이용한 column연산
data['여자_100명당_남자수'] = data['남자/여자']*100
data
비교 연산자를 이용한 판별도 가능합니다.
==, !=, >, >=, <, <=
인구 수 200만명 이상의 도시를 찾아보자.
data['인구수'] >= 2000000 ###조건에 해당되면 True
(data['인구수'] >= 2000000).sum() ###조건에 해당되는 True의 수 합산
조건에 해당되는 row만 반환해보자.
(columns은 모두 출력하고자 한다.)
data[data['인구수'] >= 2e+6]
# 0이 많아 지수로 표현
# 2e+6은 2에 10을 6번 곱한 값
조건에 해당되는 row와 column을 반환해보자.
data[data['인구수'] >= 2e+6]['도시']
인구수의 중앙값 이상의 도시를 구하자.
data['인구수'][:].median()
median_value = data['인구수'][:].median()
median_value #변수를 생성해서 중앙값을 저장
data[data['인구수'] >= median_value]['도시']