데이터의 칼럼이 많은 경우, 특정 칼럼을 기준으로 데이터프레임의 데이터를 추출할 수 있다.
import numpy as npimport pandas as pdflight = pd.read_csv('Clean_Dataset.csv', encoding='cp949')
# 하나의 칼럼만 선택하기flight[['departure_time']]
departure_time
0
Evening
1
Early_Morning
2
Early_Morning
3
Morning
4
Morning
...
...
300148
Morning
300149
Afternoon
300150
Early_Morning
300151
Early_Morning
300152
Morning
300153 rows × 1 columns
# 여러 개의 칼럼 선택하기flight[['airline', 'departure_time', 'source_city']]
airline
departure_time
source_city
0
SpiceJet
Evening
Delhi
1
SpiceJet
Early_Morning
Delhi
2
AirAsia
Early_Morning
Delhi
3
Vistara
Morning
Delhi
4
Vistara
Morning
Delhi
...
...
...
...
300148
Vistara
Morning
Chennai
300149
Vistara
Afternoon
Chennai
300150
Vistara
Early_Morning
Chennai
300151
Vistara
Early_Morning
Chennai
300152
Vistara
Morning
Chennai
300153 rows × 3 columns
행 범위를 지정하여 데이터 선택하기
데이터프레임에서 슬라이싱(Slicing)을 이용하여 행(row) 범위의 데이터를 선택할 수 있다.
# 슬라이싱을 이용하여 10행부터 20행까지 데이터 가져오기flight[10:21]
Unnamed: 0
airline
flight
source_city
departure_time
stops
arrival_time
destination_city
class
duration
days_left
price
10
10
GO_FIRST
G8-392
Delhi
Afternoon
zero
Evening
Mumbai
Economy
2.25
1
5954
11
11
GO_FIRST
G8-338
Delhi
Morning
zero
Afternoon
Mumbai
Economy
2.33
1
5954
12
12
Indigo
6E-5001
Delhi
Early_Morning
zero
Morning
Mumbai
Economy
2.17
1
5955
13
13
Indigo
6E-6202
Delhi
Morning
zero
Afternoon
Mumbai
Economy
2.17
1
5955
14
14
Indigo
6E-549
Delhi
Afternoon
zero
Evening
Mumbai
Economy
2.25
1
5955
15
15
Indigo
6E-6278
Delhi
Morning
zero
Morning
Mumbai
Economy
2.33
1
5955
16
16
Air_India
AI-887
Delhi
Early_Morning
zero
Morning
Mumbai
Economy
2.08
1
5955
17
17
Air_India
AI-665
Delhi
Early_Morning
zero
Morning
Mumbai
Economy
2.17
1
5955
18
18
AirAsia
I5-747
Delhi
Evening
one
Early_Morning
Mumbai
Economy
12.25
1
5949
19
19
AirAsia
I5-747
Delhi
Evening
one
Morning
Mumbai
Economy
16.33
1
5949
20
20
GO_FIRST
G8-266
Delhi
Early_Morning
one
Evening
Mumbai
Economy
11.75
1
5954
특정 행, 열의 범위를 선택하여 데이터를 선택하기
데이터프레임에서 특정 행과 열의 범위를 지정하여 데이터를 선택하는 방법으로 loc과 iloc이 있다.
loc(location)
iloc(integer location)
데이터프레임의 행이나 열에 레이블로 접근
데이터프레임의 행이나 열에 인덱스 값으로 접근
인덱스 및 칼럼명을 통해 지정하는 방법
인덱스를 활용해 지정하는 방법
설정한 인덱스를 그대로 사용
0 based index로 사용
# 인덱스 새롭게 지정하기flight.index = np.arange(100, 300253)flight
Unnamed: 0
airline
flight
source_city
departure_time
stops
arrival_time
destination_city
class
duration
days_left
price
100
0
SpiceJet
SG-8709
Delhi
Evening
zero
Night
Mumbai
Economy
2.17
1
5953
101
1
SpiceJet
SG-8157
Delhi
Early_Morning
zero
Morning
Mumbai
Economy
2.33
1
5953
102
2
AirAsia
I5-764
Delhi
Early_Morning
zero
Early_Morning
Mumbai
Economy
2.17
1
5956
103
3
Vistara
UK-995
Delhi
Morning
zero
Afternoon
Mumbai
Economy
2.25
1
5955
104
4
Vistara
UK-963
Delhi
Morning
zero
Morning
Mumbai
Economy
2.33
1
5955
...
...
...
...
...
...
...
...
...
...
...
...
...
300248
300148
Vistara
UK-822
Chennai
Morning
one
Evening
Hyderabad
Business
10.08
49
69265
300249
300149
Vistara
UK-826
Chennai
Afternoon
one
Night
Hyderabad
Business
10.42
49
77105
300250
300150
Vistara
UK-832
Chennai
Early_Morning
one
Night
Hyderabad
Business
13.83
49
79099
300251
300151
Vistara
UK-828
Chennai
Early_Morning
one
Evening
Hyderabad
Business
10.00
49
81585
300252
300152
Vistara
UK-822
Chennai
Morning
one
Evening
Hyderabad
Business
10.08
49
81585
300153 rows × 12 columns
# loc 사용하기flight.loc[[102, 202, 302]]
Unnamed: 0
airline
flight
source_city
departure_time
stops
arrival_time
destination_city
class
duration
days_left
price
102
2
AirAsia
I5-764
Delhi
Early_Morning
zero
Early_Morning
Mumbai
Economy
2.17
1
5956
202
102
Vistara
UK-819
Delhi
Afternoon
one
Night
Mumbai
Economy
6.00
1
18923
302
202
Vistara
UK-879
Delhi
Evening
one
Night
Mumbai
Economy
5.33
2
13673
# iloc 사용하기flight.iloc[[102, 202, 302]]
Unnamed: 0
airline
flight
source_city
departure_time
stops
arrival_time
destination_city
class
duration
days_left
price
202
102
Vistara
UK-819
Delhi
Afternoon
one
Night
Mumbai
Economy
6.00
1
18923
302
202
Vistara
UK-879
Delhi
Evening
one
Night
Mumbai
Economy
5.33
2
13673
402
302
Indigo
6E-2193
Delhi
Afternoon
one
Night
Mumbai
Economy
8.33
3
11326
조건으로 데이터 선택하기
Boolean 연산을 통해 원하는 데이터만 추출할 수도 있다.
# boolean 연산으로 조건을 만족하는 데이터만 추출하기flight_extract = flight[(flight['price']>12000) & (flight['airline']=='Air_India')]flight_extract.head()
Unnamed: 0
airline
flight
source_city
departure_time
stops
arrival_time
destination_city
class
duration
days_left
price
40
40
Air_India
AI-504
Delhi
Night
one
Morning
Mumbai
Economy
11.00
1
12150
41
41
Air_India
AI-502
Delhi
Afternoon
one
Morning
Mumbai
Economy
19.08
1
12150
42
42
Air_India
AI-506
Delhi
Morning
one
Morning
Mumbai
Economy
22.83
1
12150
43
43
Air_India
AI-803
Delhi
Early_Morning
one
Morning
Mumbai
Economy
26.42
1
12150
44
44
Air_India
AI-479
Delhi
Night
one
Afternoon
Mumbai
Economy
17.75
1
12215
조건을 자주 변경해야 하거나 조건이 너무 많으면 조건을 변수로 저장하여 사용할 수도 있다.
# 조건을 별도로 지정하여 데이터 추출하기# 가격 : 12000 초과price_Tag = flight['price']>12000# 항공사 이름 : Air_Indiaairline_tag = flight['airline']=='Air_India'flight_extract2 = flight[price_Tag & airline_tag].head()flight_extract2