#데이터불러오기
import pandas as pd
import numpy as np
flight=pd.read_csv('./Clean_Dataset.csv', encoding='cp949')
flight
#원하는 컬럼만 가져와서 새로운 데이터로 저장하기
flight2=pd.read_csv('./Clean_Dataset.csv', index_col='stops', usecols=['stops','departure_time','arrival_time','destination_city'])
flight2
#crosstab으로 범주형 데이터 2개를 비교
pd.crosstab(index=flight.source_city, columns=flight.arrival_time)
#데이터 살펴보기
flight.head() # 상단 5행 보기 (0행부터)
flight.tail() # 하단 5행 보기
flight.tail(3) # 볼 행 수 지정하기(n=3 처럼 해도 됨)
flight.shape # (행, 열)의 갯수를 보여줌
flight.columns # colums의 이름을 나열해줌
flight.info() # 각 컬럼 이름, 널이 아닌 데이터 갯수, 데이터 타입을 보여줌(칼럼수, 결측치 등을 한번에 볼 수 있음)
flight.describe() # 데이터 타입이 숫자인 컬럼의 갯수, 평균, 표준편차, 최소값, 1분위/2분위/3분위수, 최대값을 보여줌
flight.dtypes # 각 컬럽의 데이터 타입을 보여줌
flight['source_city'].value_counts() # 지정한 컬럼에 있는 값의 갯수를 보여줌
#필요 데이터 선택하기
flight[['departure_time']] # 하나의 컬럼 선택해서 출력하기(대괄호 하나만 있어도 되는데, 이 경우 서식이 없어짐)
flight[['airline','departure_time']] # 여러개의 컬럼을 선택해서 출력하기 ( 컬럼명에 각각 대괄호 하니까 오류남)
flight[10:21] # 특정 행을 선택해서 출력하기, [시작:끝] 지정, 슬라이싱, 끝은 포함하지 않음, 10행~20행까지 출력
# 인덱스 새롭게 지정
flight.index = np.arange(100,300253)
flight.loc[[102, 202, 304]] # 인덱스 번호로 불러옴
flight.iloc[[102, 202, 302]] # 0 based index 기준으로 불러옴
flight.loc[[102, 202, 302],['airline','flight', 'source_city','price']] #loc를 사용하여 행과 열의 범위 지정하기
flight.iloc[[102, 202, 302],[1,2,3,11]] # iloc을 사용하여 행과 열의 범위 지정하기, 컬럼명 사용 시 에러발생
flight[(flight['price']>12000)&(flight['airline']=='Air_India')] # 조건으로 불러오기
# 조건을 변수로 지정해서 불러오기
price_tag = flight['price'] > 12000
airline_tag = flight['airline'] == 'Air_India'
flight[price_tag & airline_tag].info()
# 필요 데이터 변경하기
# 데이터 추가하기
flight['price2'] = flight['price'] * 2
flight['price3'] = flight['price'] + flight['price2']
flight.head()
# 원하는 위치에 데이터 추가하기
# df.insert(loc, column, value, allow_duplicates = False)
# loc(삽입 위치, 0부터 시작), column(삽입될 열의 이름), value(삽입될 열의 값), allow_duplicates(중복 열의 삽입 허용 여부)
flight.insert(10,'duration2', flight['duration']*10)
flight
# 데이터 삭제하기
# axis = 0 (행 레벌로 삭제), axis = 1(열 레벨로 삭제)
flight.drop('price3', axis = 1).head()
flight.drop(index = 100, axis = 0).head()
# 이때 drop은 데이터에 저장되지 않음
# 저장하려면 1) 새로운 데이터프레임에 저정하거나, 2) inplace 파라미터를 True로 설정
flight1= flight.drop('price3', axis=1)
flight1
flight.drop('price2', axis=1, inplace=True)
flight
# rename 메소드를 이용하여 칼럼명 변경하기
flight = flight.rename(columns = {'airline': 'airline_name','source_city': 'departure_city'})
flight.head()
# sort_value 메소드와 ascending 매개변수를 이용하여 데이터 정렬하기
flight = flight.sort_values(by = 'Unnamed: 0', ascending=False) # 내림차순 정렬, True로 하면 오름차순 정렬
flight
'Tech' 카테고리의 다른 글
데이터의 이해 - 비시각화/시각화 데이터 탐색 (0) | 2024.09.09 |
---|---|
그룹화하기, 데이터프레임 병합하기 (0) | 2024.09.06 |
통계학 정리 2 (1) | 2024.08.30 |
통계학 정리 (1) | 2024.08.28 |
Ch8 로지스틱 회귀 (0) | 2024.06.27 |