데이터 추가하기

기존 데이터프레임의 칼럼을 이용하여 새로운 칼럼을 추가할 수 있다.

import numpy as np
import pandas as pd
 
flight = pd.read_csv('./Clean_Dataset.csv')
# 새로운 칼럼 만들기
flight['price2'] = flight['price'] * 2
flight.head()
Unnamed: 0airlineflightsource_citydeparture_timestopsarrival_timedestination_cityclassdurationdays_leftpriceprice2
00SpiceJetSG-8709DelhiEveningzeroNightMumbaiEconomy2.171595311906
11SpiceJetSG-8157DelhiEarly_MorningzeroMorningMumbaiEconomy2.331595311906
22AirAsiaI5-764DelhiEarly_MorningzeroEarly_MorningMumbaiEconomy2.171595611912
33VistaraUK-995DelhiMorningzeroAfternoonMumbaiEconomy2.251595511910
44VistaraUK-963DelhiMorningzeroMorningMumbaiEconomy2.331595511910

코드 수행 결과를 보면 price2라는 새로운 칼럼을 정의하고 기존 칼럼인 price를 2배로 한 것을 저장한 것을 볼 수 있다.

이번에는 insert 함수를 사용하여 원하는 위치에 칼럼을 생성해보겠다.

df.insert(loc, column, value, allow_duplicates=False)

- loc : 삽입될 열의 위치
- column : 삽입될 열의 이름
- value : 삽입될 열의 값
- allow_duplicates : {True or False} 기본값은 False로 True일 경우 중복 열의 삽입을 허용
# 새로운 칼럼 원하는 위치에 넣기
flight.insert(10, 'duration2', flight['duration'] * 10)
 
# 처음 0부터 시작하면 10번 칼럼으로 insert
flight.head()
Unnamed: 0airlineflightsource_citydeparture_timestopsarrival_timedestination_cityclassdurationduration2days_leftpriceprice2
00SpiceJetSG-8709DelhiEveningzeroNightMumbaiEconomy2.1721.71595311906
11SpiceJetSG-8157DelhiEarly_MorningzeroMorningMumbaiEconomy2.3323.31595311906
22AirAsiaI5-764DelhiEarly_MorningzeroEarly_MorningMumbaiEconomy2.1721.71595611912
33VistaraUK-995DelhiMorningzeroAfternoonMumbaiEconomy2.2522.51595511910
44VistaraUK-963DelhiMorningzeroMorningMumbaiEconomy2.3323.31595511910

데이터 삭제하기

데이터프레임에서 필요 없는 칼럼은 삭제할 수 있다.

기본적인 삭제는 drop 메소드를 활용한다. drop 메소드의 axis 파라미터를 이용하여 행을 기준으로 삭제할 것인지 칼럼을 기준으로 삭제할 것인지 정의할 수 있다.

  • axis=1 : 열 레벨로 데이터를 삭제
  • axis=0 : 행 레벨로 데이터를 삭제
# drop 메소드 사용하여 데이터 삭제하기
flight.drop('price2', axis=1).head()
Unnamed: 0airlineflightsource_citydeparture_timestopsarrival_timedestination_cityclassdurationduration2days_leftprice
00SpiceJetSG-8709DelhiEveningzeroNightMumbaiEconomy2.1721.715953
11SpiceJetSG-8157DelhiEarly_MorningzeroMorningMumbaiEconomy2.3323.315953
22AirAsiaI5-764DelhiEarly_MorningzeroEarly_MorningMumbaiEconomy2.1721.715956
33VistaraUK-995DelhiMorningzeroAfternoonMumbaiEconomy2.2522.515955
44VistaraUK-963DelhiMorningzeroMorningMumbaiEconomy2.3323.315955
# axis 속성 이해하기
flight.drop(index=0, axis=0).head()
Unnamed: 0airlineflightsource_citydeparture_timestopsarrival_timedestination_cityclassdurationduration2days_leftpriceprice2
11SpiceJetSG-8157DelhiEarly_MorningzeroMorningMumbaiEconomy2.3323.31595311906
22AirAsiaI5-764DelhiEarly_MorningzeroEarly_MorningMumbaiEconomy2.1721.71595611912
33VistaraUK-995DelhiMorningzeroAfternoonMumbaiEconomy2.2522.51595511910
44VistaraUK-963DelhiMorningzeroMorningMumbaiEconomy2.3323.31595511910
55VistaraUK-945DelhiMorningzeroAfternoonMumbaiEconomy2.3323.31595511910

칼럼명 변경하기

데이터 분석을 위한 데이터 전처리 과정은 프로젝트를 수행하는 다양한 팀이 참석하여 진행할 수 있으므로 원본 데이터의 칼럼명보다 단순하거나 직관적이어야 한다.

rename 메소드를 활용하면 데이터 칼럼명을 변경할 수 있다.

# rename 사용하여 칼럼명 변경하기
flight = flight.rename(columns = {'airline' : 'aireline_name', 'source_city' : 'departure_city'})
flight.head()
Unnamed: 0aireline_nameflightdeparture_citydeparture_timestopsarrival_timedestination_cityclassdurationduration2days_leftpriceprice2
00SpiceJetSG-8709DelhiEveningzeroNightMumbaiEconomy2.1721.71595311906
11SpiceJetSG-8157DelhiEarly_MorningzeroMorningMumbaiEconomy2.3323.31595311906
22AirAsiaI5-764DelhiEarly_MorningzeroEarly_MorningMumbaiEconomy2.1721.71595611912
33VistaraUK-995DelhiMorningzeroAfternoonMumbaiEconomy2.2522.51595511910
44VistaraUK-963DelhiMorningzeroMorningMumbaiEconomy2.3323.31595511910

데이터프레임 정렬하기

데이터 분석할 때 원하는 칼럼을 기준으로 데이터프레임을 정렬하여 조회할 때가 있다.

sort_values 메소드를 활용하면 데이터 프레임을 정렬할 수 있다. 역순으로 정렬하기 위해서는 ascending 파라미터를 False로 지정한다.

# sort_values 메소드와 ascending 매개변수 지정하여 데이터프레임 역순으로 정렬하기
flight = flight.sort_values(by = 'Unnamed: 0', ascending=False)
flight.head()
Unnamed: 0aireline_nameflightdeparture_citydeparture_timestopsarrival_timedestination_cityclassdurationduration2days_leftpriceprice2
300152300152VistaraUK-822ChennaiMorningoneEveningHyderabadBusiness10.08100.84981585163170
300151300151VistaraUK-828ChennaiEarly_MorningoneEveningHyderabadBusiness10.00100.04981585163170
300150300150VistaraUK-832ChennaiEarly_MorningoneNightHyderabadBusiness13.83138.34979099158198
300149300149VistaraUK-826ChennaiAfternoononeNightHyderabadBusiness10.42104.24977105154210
300148300148VistaraUK-822ChennaiMorningoneEveningHyderabadBusiness10.08100.84969265138530
# sort_values 메소드로 오름차순 정렬하기
flight = flight.sort_values(by = 'Unnamed: 0', ascending=True)
flight.head()
Unnamed: 0aireline_nameflightdeparture_citydeparture_timestopsarrival_timedestination_cityclassdurationduration2days_leftpriceprice2
00SpiceJetSG-8709DelhiEveningzeroNightMumbaiEconomy2.1721.71595311906
11SpiceJetSG-8157DelhiEarly_MorningzeroMorningMumbaiEconomy2.3323.31595311906
22AirAsiaI5-764DelhiEarly_MorningzeroEarly_MorningMumbaiEconomy2.1721.71595611912
33VistaraUK-995DelhiMorningzeroAfternoonMumbaiEconomy2.2522.51595511910
44VistaraUK-963DelhiMorningzeroMorningMumbaiEconomy2.3323.31595511910