1) 판다스 불러오기
판다스: 파이썬의 분석 라이브러리
넘파이: 파이썬의 수치자료 처리 라이브러리
import 라이브러리명 as 부를 이름
import pandas as pd
improt numpy as np
2) 시리즈 만들기
시리즈: pandas에서 사용하는 일종의 리스트
인덱스: 열의 순서라고 생각하기.
① 딕셔너리로 시리즈 만들기
dic = { 'a' :1, 'b' : 2, 'c': 3}
dic_series = pd.Series(dic)
print(dic_series)
② 리스트로 시리즈 만들기
ls = [1,2,3]
li_series = pd.Series(ls, index = ['a','b','c'])
print(pd.Series(ls))
인덱스를 설정하지 않으면 a, b, c 가 아니라 0, 1, 2 으로 보임
3) 데이터 프레임 만들기
dic = { ~ 딕셔너리 내용~}
df = pd.DataFrame(dic)
ls = [[리스트1], [리스트2], [리스트3]
df = pd.DataFrame(ls, columms = '열이름1', '열이름2', '열이름3')
#딕셔너리, 리스트는 각 열과 값의 길이가 같아야만 데이터 프레임으로 만들 수 있음. 그렇지 않으면 오류가 남
series1 = pd.Series(~)
series2 = pd.Series(~)
series3 = pd.Series(~)
df = pd.DataFrame( { '열이름1': series1, '열이름2': series2, '열이름3': series3 } )
4) 외부에서 데이터 프레임 불러오기 및 저장하기 (주피터노트북)
#불러오기 (파일이 깨지면 cp949 또는 utf-8 로 인코딩)
import pandas as pd
data = pd.read_csv(r"파일경로(파일 오른쪽 버튼 경로로 복사)", encoding = "cp949")
#저장하기 (새로운 파일로 저장)
csv_file_path1 = '파일경로'
csv_data1.to_csv(csv_file_path1)
5) 데이터 프레임 상위 / 하위 행 확인하기
data.head() #상위 행 5개 확인
data.tail() #하위 행 5개 확인
data.head(10) #상위 행 10개 확인
data.tail(10) #하위 행 10개 확인
6) 데이터 프레임의 요약정보 확인하기
data.info()
#전체 행의 개수, 컬럼 정보, 결측치, 데이터 타입
data.describe()
#컬럼 별 값 개수, 평균, 표준편차, 최솟값, 최대값, 사분위수 정보
7) 조건에 맞는 데이터 추출
(데이터 프레임 만들거나 불러온 후 진행)
#인덱스 기준으로
데이터프레임명[시작인덱스:끝인덱스+1]
df[3:7]
#3번째 인덱스부터 6번째 인덱스까지 불러오는 것
#열(컬럼) 기준으로
데이터프레임[컬럼명]
데이터프레임.컬럼명
데이터프레임[ [컬럼명1, 컬럼명2, ...] ]
df['Survived'].to_frame()
#Survived 열을 데이터 프레임 형식으로 출력해라
#값을 기준으로
데이터 프레임명.loc[행조건, 열조건]
열만 조회할 때는 행조건에 : 을 입력
df.loc[ 3, ] => 3번째 행에 있는 열 값 모두 보임
df.loc[ 3 : 5 , ] => 3번째 행에 있는 값부터 5번째 행에 있는 값까지의 열값 모두 보임
(여기서는 3:5이라면 5를 포함함.)
df.loc[ : , 'Name' ] => 'Name'열에 있는 정보 보임
#위치를 기준으로
데이터 프레임명.iloc[행인덱스 조건, 열인덱스 조건]
df.iloc[3:7,] => 3부터 6번째 행에 있는 값의 모든 열을 보여줌
(여기서는 인덱스 설정하는 것처럼. 3:7이라면 6까지 포함함)
#특정 열을 정렬해서 기준으로
데이터 프레임명.sort _values(정렬기준컬럼)
데이터 프레임명.sort_values(정렬기준컬럼, asceding=False)
asceding=False => 내림차순 정렬
df.sort_values('Age', ascending=False)
=> Age 칼럼을 기준으로 내림차순으로 정렬해서 추출하기.
df.sort_values(['Age','Fare'], ascending=[False,True])
=> 첫번째로는 Age기준으로 내림차순하고, 두번째로는 Fare기준으로 오름차순으로 정렬해서 추출하기
#특정조건 기준으로
①
데이터프레임명[조건식]
=> print ( 데이터프레임명 [ 조건식 ] )
여기서 조건식은 [ 데이터프레임명 [ '기준열'] 연산자 기준 값]
df의 기준열 값이 기준 값과 동일(==)한 것을 의미
조건식 밖의 df는 그 동일한 것을 df를 참조해서 찾는다는 것 의미
[ df [ 'Pclass' ] == 1 ]
=> 이렇게만 적으면 조건만 설정되고 데이터 프레임 출력X
print ( df [ df [ 'Pclass' ] == 1 ] )
=> 이렇게 적어야 출력이 됨
df[(df['Pclass'] == 1) & (df['Age'] >= 30)]
=> 조건 두개 이상도 가능
df[df['PassengerId'].isin([3,100,500])]
=> Passengerld 열 값이 3 또는 100또는 500에 해당하는 값만 보여주기
passengerid_list = list(df['PassengerId'])
passengerid_sample = random.sample(passengerid_list, 10)
df[df['PassengerId'].isin(passengerid_sample)]
샘플 값 리스트 만들어서 조건만들기도 가능
②
데이터프레임명.query('조건식')
df.query('Pclass == 1')
df.query('Pclass == 1 and Age >= 30')
df.query('PassengerId in [3,100,500]')
df.query('PassengerId.isin([3,100,500])')
=> Passengerld 열 값이 3 또는 100또는 500에 해당하는 값만 보여주기
df.query('PassengerId in @passengerid_sample')