반응형

#데이터불러오기
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

+ Recent posts