11.1 weather.csv 파일을 pandas를 이용하여 읽고, 데이터프레임을 만들어 다음과 같은 일을 처리해보자.
1) 이 데이터의 앞 3개 행과 마지막 3개 행을 다음처럼 화면에 나타내어라(힌트: head(), tail() 메소드를 활용하라).
평균기온 최대풍속 평균풍속
일시
2010-08-01 28.7 8.3 3.4
2010-08-02 25.2 8.7 3.8
2010-08-03 22.1 6.3 2.9
평균기온 최대풍속 평균풍속
일시
2020-07-29 21.6 3.2 1.0
2020-07-30 22.9 9.7 2.4
2020-07-31 25.7 4.8 2.5
import os
from google.colab import drive
drive.mount('/content/drive')
os.chdir('/content/drive/My Drive/Colab Notebooks')
Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
# your code here
2) 2015년 6월 6일의 울릉도 평균 기온과 풍속 정보를 다음과 같이 확인해 보라.
평균기온 16.6
최대풍속 4.4
평균풍속 1.9
Name: 2015-06-06, dtype: float64
# your code here
3) 이 데이터에 기록된 날들 중에서 가장 무더웠던 날의 평균 기온은 얼마였는지 찾아 보라(힌트: weather['평균기온'].max()를 활용하라).
31.3
# your code here
4) 가장 무더웠던 날이 언제이고, 이 날의 평균기온, 평균풍속, 최대풍속을 알아 보라(힌트: weather[weather['평균기온'] == weather['평균기온'].max()]로 데이터 접근하여라).
평균기온 최대풍속 평균풍속
일시
2013-08-08 31.3 7.8 4.6
# your code here
5) 울릉도의 평균기온 중 30도를 넘는 날들을 찾아, 이날의 기상 데이터를 나열해 보라.
평균기온 최대풍속 평균풍속
일시
2013-08-08 31.3 7.8 4.6
2013-08-09 30.6 9.9 6.4
2013-08-10 30.6 7.4 3.8
2018-07-23 30.5 6.5 1.6
2018-08-04 30.3 5.8 3.0
# your code here
11.2 다음은 P 자동차 회사의 차종별 마력, 총중량, 그리고 연비를 나타낸 표이다.
A | B | C | D | E | F | G | |
---|---|---|---|---|---|---|---|
마력 | 130 | 250 | 190 | 300 | 210 | 220 | 170 |
총중량 | 1900 | 2600 | 2200 | 2900 | 2400 | 2300 | 2200 |
연비 | 16.3 | 10.2 | 11.1 | 7.1 | 12.1 | 13.2 | 14.2 |
이 표를 pandas 데이터프레임으로 만들려면 다음과 같은 딕셔너리 구조를 이용하여 생성하면 된다.
df = pd.DataFrame({
'name' : ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
'horse power' : [130, 250, 190, 300, 210, 220, 170],
'weight' : [1.9, 2.6, 2.2, 2.9, 2.4, 2.3, 2.2],
'efficiency' : [16.3, 10.2, 11.1, 7.1, 12.1, 13.2, 14.2] })
print(df)
name horse power weight efficiency
0 A 130 1.9 16.3
1 B 250 2.6 10.2
2 C 190 2.2 11.1
3 D 300 2.9 7.1
4 E 210 2.4 12.1
5 F 220 2.3 13.2
6 G 170 2.2 14.2
1) 이 데이터프레임의 name 열을 인덱스로 사용하고 싶다. set_index('name')을 데이터프레임에 적용하여 다음과 같은 결과가 나오게 만들어 보라.
horse power weight efficiency
name
A 130 1.9 16.3
B 250 2.6 10.2
C 190 2.2 11.1
# your code here
2) 가장 높은 마력을 가진 차종을 찾아, 다음처럼 중량과 연비를 확인해 보자.
horse power weight efficiency
name
D 300 2.9 7.1
# your code here
3) 마력과 연비를 곱한 값이 가장 큰 차종을 다음과 같이 찾아 보라.
horse power weight efficiency hp x mile
name
F 220 2.3 13.2 2904.0
# your code here
11.3 다음은 Q 자동차 회사의 차종별 마력, 총중량, 그리고 연비를 나타낸 표이다.
A | B | C | D | |
---|---|---|---|---|
마력 | 120 | 220 | 120 | 200 |
총중량 | 1900 | 2100 | 1500 | 2900 |
연비 | 18.3 | 19.2 | 21.1 | 17.3 |
1) 이 표를 pandas 데이터프레임으로 만들어 출력해 보라.
horse power weight efficiency
name
A 120 1.9 18.3
B 220 2.1 19.2
C 120 1.5 21.1
D 200 2.9 17.3
# your code here
2) Q 사의 데이터와 P 사의 데이터를 합쳐 다음과 같은 하나의 데이터프레임을 만들라.
name horse power weight efficiency
A 130 1.9 16.3
B 250 2.6 10.2
C 190 2.2 11.1
D 300 2.9 7.1
E 210 2.4 12.1
F 220 2.3 13.2
G 170 2.2 14.2
A 120 1.9 18.3
B 220 2.1 19.2
C 120 1.5 21.1
D 200 2.9 17.3
# your code here
3) 각 차량의 제조사를 알 수 있게 다음과 같이 데이터프레임을 다시 만들어 보라.
name horse power weight efficiency com
A 130 1.9 16.3 P
B 250 2.6 10.2 P
C 190 2.2 11.1 P
D 300 2.9 7.1 P
E 210 2.4 12.1 P
F 220 2.3 13.2 P
G 170 2.2 14.2 P
A 120 1.9 18.3 Q
B 220 2.1 19.2 Q
C 120 1.5 21.1 Q
D 200 2.9 17.3 Q
# your code here
4) 각 회사에서 생산하는 차량들의 마력 x 연비의 평균값을 구해 회사별로 출력해 보라.
com
P 2395.285714
Q 3103.000000
# your code here
11.4 aircraftDatabase-2021-11.csv 파일을 pandas를 이용하여 읽고, 데이터프레임을 만들어 다음과 같은 일을 처리해보자.
# your code here
/usr/local/lib/python3.7/dist-packages/IPython/core/interactiveshell.py:2718: DtypeWarning: Columns (14) have mixed types.Specify dtype option on import or set low_memory=False. interactivity=interactivity, compiler=compiler, result=result)
icao24 registration ... notes categoryDescription 0 NaN NaN ... NaN NaN 1 aa3487 N757F ... NaN NaN 2 ae267b 6533 ... NaN No ADS-B Emitter Category Information [3 rows x 27 columns] icao24 registration manufacturericao ... acars notes categoryDescription 459997 a66152 N51YX NaN ... False NaN NaN 459998 405eae G-DTAR NaN ... False NaN NaN 459999 c09b2d C-IGTW NaN ... False NaN NaN [3 rows x 27 columns]
1) 데이터프레임의 항공기별 데이터 리스트를 출력하라. 위의 문제와 다르게 데이터가 상당히 크기 때문에 몇 개를 출력하여 어떤 데이터가 있는지 살피기 보다는 리스트만을 살펴본 뒤 접근하는 방식이 훨씬 간편할 것이다.
# your code here
['icao24', 'registration', 'manufacturericao', 'manufacturername', 'model', 'typecode', 'serialnumber', 'linenumber', 'icaoaircrafttype', 'operator', 'operatorcallsign', 'operatoricao', 'operatoriata', 'owner', 'testreg', 'registered', 'reguntil', 'status', 'built', 'firstflightdate', 'seatconfiguration', 'engines', 'modes', 'adsb', 'acars', 'notes', 'categoryDescription']
2) 항공기 제조사(manufacturername) 중 항공기가가 가장 많은 순으로 10개의 제조사를 골라 파이 차트를 percentage가 나타나도록 출력하라. 단, 여기서 nan은 출력하지 않아야 한다.
# your code here
3) 대한민국의 항공기 등록기호는 "HL"이다. 등록된 항공기 중 등록부호(registration)의 앞 두글자가 "HL"인 것들을 고른 뒤, 항공기 보유사 또는 개인(private) 중 가장 많은 순으로 10개를 골라 막대그래프로 출력하라. 마찬가지로, nan은 출력되지 않아야 한다.
# your code here