반응형
모듈 import¶
In [1]:
from IPython.display import Image
import numpy as np
import pandas as pd
데이터 다운로드¶
In [2]:
from opendata import dataset
# 데이터셋 다운로드
dataset.download('서울시대중교통')
dataset.download('서울시주민등록인구')
======= 다운로드 시작 ======= data/seoul_transportation.xlsx
0%| | 0.00/26.2k [00:00<?, ?B/s]
======= 다운로드 완료 ======= ======= 다운로드 시작 ======= data/seoul_population.csv
0%| | 0.00/3.55k [00:00<?, ?B/s]
======= 다운로드 완료 =======
Excel¶
Excel - 불러오기¶
Excel 데이터를 바로 읽어들일 수 있으며, sheet_name
을 지정하면 해당 sheet를 가져옵니다.
[참고] pd.read_excel()
로 엑셀 데이터 로드시 에러 발생한다면 engine='openpyxl'
을 추가
In [3]:
excel = pd.read_excel('data/seoul_transportation.xlsx', sheet_name='철도')
In [4]:
excel.head()
Out[4]:
대중교통구분 | 노선명 | 년월 | 승차총승객수 | |
---|---|---|---|---|
0 | 지하철 | 1호선 | 201711 | 8633618 |
1 | 지하철 | 1호선 | 201712 | 8737235 |
2 | 지하철 | 1호선 | 201801 | 8145989 |
3 | 지하철 | 1호선 | 201802 | 7273309 |
4 | 지하철 | 1호선 | 201803 | 8692551 |
In [5]:
excel = pd.read_excel('data/seoul_transportation.xlsx', sheet_name='버스')
excel.head()
Out[5]:
대중교통구분 | 년월 | 승차총승객수 | |
---|---|---|---|
0 | 버스 | 201711 | 163443126 |
1 | 버스 | 201712 | 162521011 |
2 | 버스 | 201801 | 153335185 |
3 | 버스 | 201802 | 134768582 |
4 | 버스 | 201803 | 166177855 |
sheet_name
을 None으로 지정하면, 모든 sheet를 가지고 옵니다.
가지고 올 때는 OrderedDict로 가져오며, keys()
로 시트명을 조회할 수 있습니다.
In [6]:
excel = pd.read_excel('data/seoul_transportation.xlsx', sheet_name=None)
excel
Out[6]:
{'철도': 대중교통구분 노선명 년월 승차총승객수 0 지하철 1호선 201711 8633618 1 지하철 1호선 201712 8737235 2 지하철 1호선 201801 8145989 3 지하철 1호선 201802 7273309 4 지하철 1호선 201803 8692551 .. ... ... ... ... 596 지하철 우이신설선 201901 1263643 597 지하철 우이신설선 201902 1102109 598 지하철 우이신설선 201903 1402393 599 지하철 우이신설선 201904 1403115 600 지하철 우이신설선 201905 1469681 [601 rows x 4 columns], '버스': 대중교통구분 년월 승차총승객수 0 버스 201711 163443126 1 버스 201712 162521011 2 버스 201801 153335185 3 버스 201802 134768582 4 버스 201803 166177855 5 버스 201804 160452595 6 버스 201805 164390595 7 버스 201806 156999747 8 버스 201807 163736112 9 버스 201808 160240197 10 버스 201809 151311657 11 버스 201810 165820934 12 버스 201811 163017758 13 버스 201812 158049446 14 버스 201901 153037549 15 버스 201902 131621925 16 버스 201903 161694445 17 버스 201904 161900273 18 버스 201905 166587933}
keys()
로 포함하고 있는 시트를 조회합니다.
In [7]:
# 시트 조회
excel.keys()
Out[7]:
dict_keys(['철도', '버스'])
In [8]:
excel['철도'].head()
Out[8]:
대중교통구분 | 노선명 | 년월 | 승차총승객수 | |
---|---|---|---|---|
0 | 지하철 | 1호선 | 201711 | 8633618 |
1 | 지하철 | 1호선 | 201712 | 8737235 |
2 | 지하철 | 1호선 | 201801 | 8145989 |
3 | 지하철 | 1호선 | 201802 | 7273309 |
4 | 지하철 | 1호선 | 201803 | 8692551 |
In [9]:
excel['버스'].head()
Out[9]:
대중교통구분 | 년월 | 승차총승객수 | |
---|---|---|---|
0 | 버스 | 201711 | 163443126 |
1 | 버스 | 201712 | 162521011 |
2 | 버스 | 201801 | 153335185 |
3 | 버스 | 201802 | 134768582 |
4 | 버스 | 201803 | 166177855 |
Excel - 저장하기¶
DataFrame을 Excel로 저장할 수 있으며, Excel로 저장시 파일명을 지정합니다.
index=False
옵션은 가급적 꼭 지정하는 옵션입니다. 지정을 안하면 index가 별도의 컬럼으로 저장되게 됩니다.sheet_name
을 지정하여, 저장할 시트의 이름을 변경할 수 있습니다.
In [10]:
excel = pd.read_excel('data/seoul_transportation.xlsx', sheet_name='철도')
excel.head()
Out[10]:
대중교통구분 | 노선명 | 년월 | 승차총승객수 | |
---|---|---|---|---|
0 | 지하철 | 1호선 | 201711 | 8633618 |
1 | 지하철 | 1호선 | 201712 | 8737235 |
2 | 지하철 | 1호선 | 201801 | 8145989 |
3 | 지하철 | 1호선 | 201802 | 7273309 |
4 | 지하철 | 1호선 | 201803 | 8692551 |
별도의 시트명 지정 없이 저장
In [11]:
excel.to_excel('sample.xlsx', index=True)
시트명을 샘플로 지정하여 저장
In [12]:
excel.to_excel('sample1.xlsx', index=False, sheet_name='샘플')
CSV (Comma Separated Values)¶
- 한 줄이 한 개의 행에 해당하며, 열 사이에는 쉼표(,)를 넣어 구분합니다.
- Excel보다는 훨씬 가볍고 차지하는 용량이 적기 때문에 대부분의 파일데이터는 csv 형태로 제공됩니다.
CSV - 불러오기¶
In [13]:
df = pd.read_csv('data/seoul_population.csv')
In [14]:
df
Out[14]:
연도 | 자치구 | 세대수 | 인구 합계 | 남자 인구 합계 | 여자 인구 합계 | 한국인 인구 합계 | 한국인 남자 인구수 | 한국인 여자 인구수 | 등록 외국인 인구 합계 | 등록 외국인 인구 남자수 | 등록 외국인 인구 여자수 | 세대당 인구 | 65세 이상 고령자 수 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2020 | 합계 | 4,417,954 | 9,911,088 | 4,816,522 | 5,094,566 | 9,668,465 | 4,701,723 | 4,966,742 | 242,623 | 114,799 | 127,824 | 2.19 | 1,568,331 |
1 | 2020 | 종로구 | 75,003 | 158,996 | 76,876 | 82,120 | 149,384 | 72,635 | 76,749 | 9,612 | 4,241 | 5,371 | 1.99 | 28,507 |
2 | 2020 | 중구 | 63,686 | 134,635 | 65,776 | 68,859 | 125,240 | 61,222 | 64,018 | 9,395 | 4,554 | 4,841 | 1.97 | 24,495 |
3 | 2020 | 용산구 | 113,093 | 244,645 | 118,835 | 125,810 | 230,040 | 110,722 | 119,318 | 14,605 | 8,113 | 6,492 | 2.03 | 40,247 |
4 | 2020 | 성동구 | 135,870 | 300,505 | 146,424 | 154,081 | 293,556 | 143,387 | 150,169 | 6,949 | 3,037 | 3,912 | 2.16 | 45,603 |
5 | 2020 | 광진구 | 167,427 | 360,109 | 173,000 | 187,109 | 346,682 | 167,310 | 179,372 | 13,427 | 5,690 | 7,737 | 2.07 | 50,560 |
6 | 2020 | 동대문구 | 167,598 | 357,014 | 175,322 | 181,692 | 342,837 | 169,769 | 173,068 | 14,177 | 5,553 | 8,624 | 2.05 | 61,796 |
7 | 2020 | 중랑구 | 185,920 | 399,562 | 197,118 | 202,444 | 394,702 | 195,165 | 199,537 | 4,860 | 1,953 | 2,907 | 2.12 | 69,447 |
8 | 2020 | 성북구 | 195,396 | 447,056 | 214,658 | 232,398 | 437,153 | 210,810 | 226,343 | 9,903 | 3,848 | 6,055 | 2.24 | 73,770 |
9 | 2020 | 강북구 | 145,896 | 311,569 | 151,466 | 160,103 | 308,055 | 150,143 | 157,912 | 3,514 | 1,323 | 2,191 | 2.11 | 63,422 |
10 | 2020 | 도봉구 | 139,114 | 327,361 | 159,420 | 167,941 | 325,257 | 158,620 | 166,637 | 2,104 | 800 | 1,304 | 2.34 | 62,059 |
11 | 2020 | 노원구 | 218,270 | 527,032 | 254,188 | 272,844 | 523,037 | 252,383 | 270,654 | 3,995 | 1,805 | 2,190 | 2.40 | 85,489 |
12 | 2020 | 은평구 | 213,914 | 484,043 | 231,998 | 252,045 | 479,835 | 230,279 | 249,556 | 4,208 | 1,719 | 2,489 | 2.24 | 85,187 |
13 | 2020 | 서대문구 | 144,838 | 322,952 | 153,152 | 169,800 | 312,173 | 149,360 | 162,813 | 10,779 | 3,792 | 6,987 | 2.16 | 54,204 |
14 | 2020 | 마포구 | 178,482 | 381,858 | 178,977 | 202,881 | 371,890 | 175,150 | 196,740 | 9,968 | 3,827 | 6,141 | 2.08 | 54,331 |
15 | 2020 | 양천구 | 180,633 | 457,781 | 224,379 | 233,402 | 454,251 | 222,824 | 231,427 | 3,530 | 1,555 | 1,975 | 2.51 | 65,670 |
16 | 2020 | 강서구 | 266,982 | 585,901 | 282,686 | 303,215 | 580,185 | 280,034 | 300,151 | 5,716 | 2,652 | 3,064 | 2.17 | 88,984 |
17 | 2020 | 구로구 | 180,531 | 432,488 | 215,424 | 217,064 | 404,408 | 199,673 | 204,735 | 28,080 | 15,751 | 12,329 | 2.24 | 70,198 |
18 | 2020 | 금천구 | 114,715 | 247,835 | 126,141 | 121,694 | 231,733 | 117,226 | 114,507 | 16,102 | 8,915 | 7,187 | 2.02 | 39,842 |
19 | 2020 | 영등포구 | 184,714 | 407,367 | 202,969 | 204,398 | 379,480 | 187,647 | 191,833 | 27,887 | 15,322 | 12,565 | 2.05 | 61,688 |
20 | 2020 | 동작구 | 184,229 | 401,572 | 193,718 | 207,854 | 391,220 | 189,152 | 202,068 | 10,352 | 4,566 | 5,786 | 2.12 | 65,190 |
21 | 2020 | 관악구 | 274,811 | 509,803 | 255,211 | 254,592 | 495,060 | 248,339 | 246,721 | 14,743 | 6,872 | 7,871 | 1.80 | 78,875 |
22 | 2020 | 서초구 | 173,502 | 429,025 | 205,282 | 223,743 | 425,126 | 203,359 | 221,767 | 3,899 | 1,923 | 1,976 | 2.45 | 60,169 |
23 | 2020 | 강남구 | 234,872 | 544,055 | 260,378 | 283,677 | 539,231 | 257,999 | 281,232 | 4,824 | 2,379 | 2,445 | 2.30 | 75,096 |
24 | 2020 | 송파구 | 281,959 | 673,926 | 325,080 | 348,846 | 667,960 | 322,299 | 345,661 | 5,966 | 2,781 | 3,185 | 2.37 | 93,483 |
25 | 2020 | 강동구 | 196,499 | 463,998 | 228,044 | 235,954 | 459,970 | 226,216 | 233,754 | 4,028 | 1,828 | 2,200 | 2.34 | 70,019 |
CSV - 저장하기¶
저장하는 방법은 excel과 유사합니다. 다만, csv파일 형식에는 sheet_name
옵션은 없습니다.
In [15]:
df = pd.read_csv('data/seoul_population.csv')
to_csv()
으로 csv 파일형식으로 저장할 수 있습니다.
In [16]:
df.to_csv('sample.csv', index=False)
읽어들인 Excel 파일도 Csv로 저장할 수 있습니다.
In [17]:
excel = pd.read_excel('data/seoul_transportation.xlsx', sheet_name='버스', engine='openpyxl')
excel.head()
Out[17]:
대중교통구분 | 년월 | 승차총승객수 | |
---|---|---|---|
0 | 버스 | 201711 | 163443126 |
1 | 버스 | 201712 | 162521011 |
2 | 버스 | 201801 | 153335185 |
3 | 버스 | 201802 | 134768582 |
4 | 버스 | 201803 | 166177855 |
In [18]:
excel.to_csv('sample1.csv', index=False)
json(JavaScript Object Notation)¶
- JavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식
- 용량이 작고, 파일의 구조를 이해하기 직관적
- 데이터 전송시 많이 사용됩니다.
In [19]:
import pprint
import json
import requests
# USD 환율 정보 실시간 요청 API
# 결과 형식을 json 형식으로 반환
url = "https://api.exchangerate-api.com/v4/latest/USD"
# API로 실시간 데이터 요청
ret = requests.get(url)
# json 형식의 파일로 로드
json_data = json.loads(ret.text)
# 출력
pprint.pprint(json_data)
{'WARNING_UPGRADE_TO_V6': 'https://www.exchangerate-api.com/docs/free', 'base': 'USD', 'date': '2024-06-30', 'provider': 'https://www.exchangerate-api.com', 'rates': {'AED': 3.67, 'AFN': 70.81, 'ALL': 93.69, 'AMD': 388.03, 'ANG': 1.79, 'AOA': 865.33, 'ARS': 911.75, 'AUD': 1.5, 'AWG': 1.79, 'AZN': 1.7, 'BAM': 1.83, 'BBD': 2, 'BDT': 117.52, 'BGN': 1.83, 'BHD': 0.376, 'BIF': 2865.48, 'BMD': 1, 'BND': 1.36, 'BOB': 6.92, 'BRL': 5.5, 'BSD': 1, 'BTN': 83.42, 'BWP': 13.61, 'BYN': 3.27, 'BZD': 2, 'CAD': 1.37, 'CDF': 2821.48, 'CHF': 0.899, 'CLP': 954.82, 'CNY': 7.28, 'COP': 4126.43, 'CRC': 522.38, 'CUP': 24, 'CVE': 102.97, 'CZK': 23.37, 'DJF': 177.72, 'DKK': 6.97, 'DOP': 59.01, 'DZD': 134.67, 'EGP': 48.04, 'ERN': 15, 'ETB': 57.77, 'EUR': 0.934, 'FJD': 2.24, 'FKP': 0.791, 'FOK': 6.97, 'GBP': 0.791, 'GEL': 2.8, 'GGP': 0.791, 'GHS': 15.29, 'GIP': 0.791, 'GMD': 64.64, 'GNF': 8585.92, 'GTQ': 7.76, 'GYD': 209.02, 'HKD': 7.81, 'HNL': 24.74, 'HRK': 7.04, 'HTG': 132.14, 'HUF': 368.98, 'IDR': 16348.45, 'ILS': 3.77, 'IMP': 0.791, 'INR': 83.42, 'IQD': 1309.41, 'IRR': 42072.71, 'ISK': 139.08, 'JEP': 0.791, 'JMD': 155.93, 'JOD': 0.709, 'JPY': 160.81, 'KES': 128.83, 'KGS': 86.62, 'KHR': 4095.24, 'KID': 1.5, 'KMF': 459.44, 'KRW': 1379.03, 'KWD': 0.307, 'KYD': 0.833, 'KZT': 467.34, 'LAK': 21967.11, 'LBP': 89500, 'LKR': 305.56, 'LRD': 194.44, 'LSL': 18.2, 'LYD': 4.87, 'MAD': 9.96, 'MDL': 17.93, 'MGA': 4473.31, 'MKD': 57.48, 'MMK': 2098.8, 'MNT': 3374.35, 'MOP': 8.04, 'MRU': 39.4, 'MUR': 47.15, 'MVR': 15.45, 'MWK': 1743.51, 'MXN': 18.31, 'MYR': 4.72, 'MZN': 63.47, 'NAD': 18.2, 'NGN': 1504.49, 'NIO': 36.79, 'NOK': 10.66, 'NPR': 133.48, 'NZD': 1.64, 'OMR': 0.384, 'PAB': 1, 'PEN': 3.82, 'PGK': 3.86, 'PHP': 58.5, 'PKR': 278.36, 'PLN': 4.03, 'PYG': 7507.59, 'QAR': 3.64, 'RON': 4.65, 'RSD': 109.27, 'RUB': 85.48, 'RWF': 1322.62, 'SAR': 3.75, 'SBD': 8.45, 'SCR': 13.76, 'SDG': 508.34, 'SEK': 10.6, 'SGD': 1.36, 'SHP': 0.791, 'SLE': 22.56, 'SLL': 22562.62, 'SOS': 570.88, 'SRD': 31.1, 'SSP': 2067.43, 'STN': 22.88, 'SYP': 12883.96, 'SZL': 18.2, 'THB': 36.78, 'TJS': 10.68, 'TMT': 3.5, 'TND': 3.15, 'TOP': 2.34, 'TRY': 32.81, 'TTD': 6.74, 'TVD': 1.5, 'TWD': 32.49, 'TZS': 2617.99, 'UAH': 40.47, 'UGX': 3705.48, 'USD': 1, 'UYU': 39.3, 'UZS': 12550.1, 'VES': 36.45, 'VND': 25462.4, 'VUV': 119.96, 'WST': 2.73, 'XAF': 612.59, 'XCD': 2.7, 'XDR': 0.76, 'XOF': 612.59, 'XPF': 111.44, 'YER': 250.07, 'ZAR': 18.2, 'ZMW': 24.79, 'ZWL': 13.7}, 'terms': 'https://www.exchangerate-api.com/terms', 'time_last_updated': 1719705601}
json 형식의 파일 로드¶
read_json()
함수 호출시 json 형식을 반환하는 API 주소나, 파일 모두 입력 가능
In [20]:
# read_json으로 파일 로드
df = pd.read_json(url)
df
Out[20]:
provider | WARNING_UPGRADE_TO_V6 | terms | base | date | time_last_updated | rates | |
---|---|---|---|---|---|---|---|
AED | https://www.exchangerate-api.com | https://www.exchangerate-api.com/docs/free | https://www.exchangerate-api.com/terms | USD | 2024-06-30 | 1719705601 | 3.67 |
AFN | https://www.exchangerate-api.com | https://www.exchangerate-api.com/docs/free | https://www.exchangerate-api.com/terms | USD | 2024-06-30 | 1719705601 | 70.81 |
ALL | https://www.exchangerate-api.com | https://www.exchangerate-api.com/docs/free | https://www.exchangerate-api.com/terms | USD | 2024-06-30 | 1719705601 | 93.69 |
AMD | https://www.exchangerate-api.com | https://www.exchangerate-api.com/docs/free | https://www.exchangerate-api.com/terms | USD | 2024-06-30 | 1719705601 | 388.03 |
ANG | https://www.exchangerate-api.com | https://www.exchangerate-api.com/docs/free | https://www.exchangerate-api.com/terms | USD | 2024-06-30 | 1719705601 | 1.79 |
... | ... | ... | ... | ... | ... | ... | ... |
XPF | https://www.exchangerate-api.com | https://www.exchangerate-api.com/docs/free | https://www.exchangerate-api.com/terms | USD | 2024-06-30 | 1719705601 | 111.44 |
YER | https://www.exchangerate-api.com | https://www.exchangerate-api.com/docs/free | https://www.exchangerate-api.com/terms | USD | 2024-06-30 | 1719705601 | 250.07 |
ZAR | https://www.exchangerate-api.com | https://www.exchangerate-api.com/docs/free | https://www.exchangerate-api.com/terms | USD | 2024-06-30 | 1719705601 | 18.20 |
ZMW | https://www.exchangerate-api.com | https://www.exchangerate-api.com/docs/free | https://www.exchangerate-api.com/terms | USD | 2024-06-30 | 1719705601 | 24.79 |
ZWL | https://www.exchangerate-api.com | https://www.exchangerate-api.com/docs/free | https://www.exchangerate-api.com/terms | USD | 2024-06-30 | 1719705601 | 13.70 |
162 rows × 7 columns
json 형식으로 저장¶
In [21]:
# json 형식으로 저장
df.to_json('currency.json')
연습문제¶
아래 코드를 실행하여 실습에 필요한 데이터셋을 다운로드 받습니다.
In [30]:
dataset.download('판다스입출력샘플')
======= 다운로드 시작 ======= data/file_sample.xlsx
0%| | 0.00/37.5k [00:00<?, ?B/s]
data/file_sample1.csv
0%| | 0.00/4.17k [00:00<?, ?B/s]
data/file_sample2.csv
0%| | 0.00/3.98k [00:00<?, ?B/s]
data/file_sample3.csv
0%| | 0.00/3.98k [00:00<?, ?B/s]
======= 다운로드 완료 =======
sample
변수에data/file_sample.xlsx
파일을 읽어서 로드합니다.- 로드한 후 sheet를 모두 출력합니다.
In [42]:
# 코드를 입력해 주세요
sample = pd.read_excel('data/file_sample.xlsx', sheet_name=None)
sample.keys()
Out[42]:
dict_keys(['2020년 01월', '2020년 02월', '2020년 03월', '2020년 04월', '2020년 05월', '2020년 06월', '2020년 07월', '2020년 08월', '2020년 09월', '2020년 10월', '2020년 11월', '2020년 12월'])
[출력 결과]
dict_keys(['2020년 01월', '2020년 02월', '2020년 03월', '2020년 04월', '2020년 05월', '2020년 06월', '2020년 07월', '2020년 08월', '2020년 09월', '2020년 10월', '2020년 11월', '2020년 12월'])
2020년 10월 시트를 sample_202010
에 로드 합니다.
In [44]:
# 코드를 입력해 주세요
sample_202010 = pd.read_excel('data/file_sample.xlsx', sheet_name='2020년 10월')
sample_202010
Out[44]:
지역 | GS칼텍스_셀프 | GS칼텍스_일반 | S-OIL_셀프 | S-OIL_일반 | SK에너지_셀프 | SK에너지_일반 | 알뜰(ex)_셀프 | 알뜰주유소_셀프 | 알뜰주유소_일반 | 자가상표_일반 | 현대오일뱅크_셀프 | 현대오일뱅크_일반 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 서울 강남구 | 1443.440000 | 1627.111111 | 1420.760000 | 1593.250 | 1416.866250 | 1734.166667 | NaN | NaN | NaN | NaN | 1385.230000 | 1525.705000 |
1 | 서울 강동구 | 1413.275000 | 1430.353333 | 1418.970000 | 1498.000 | 1445.000000 | 1653.695000 | NaN | NaN | NaN | NaN | 1403.063333 | 1424.340000 |
2 | 서울 강북구 | 1293.675000 | 1313.190000 | 1275.100000 | 1325.710 | 1329.690000 | 1295.840000 | NaN | NaN | NaN | NaN | 1322.300000 | NaN |
3 | 서울 강서구 | 1361.773333 | 1385.840000 | 1376.913333 | NaN | 1325.516667 | 1433.664000 | NaN | 1273.11 | 1264.06 | NaN | 1299.240000 | 1362.530000 |
4 | 서울 관악구 | 1415.450000 | 1429.970000 | NaN | 1397.015 | 1411.840000 | 1436.280000 | NaN | 1313.00 | 1329.45 | NaN | 1392.550000 | 1407.050000 |
5 | 서울 광진구 | NaN | 1360.394000 | 1337.160000 | 1344.970 | NaN | 1373.623333 | NaN | NaN | 1309.19 | NaN | 1358.733333 | 1337.940000 |
6 | 서울 구로구 | 1285.940000 | 1511.173333 | 1286.420000 | 1393.832 | NaN | 1336.065000 | NaN | NaN | 1321.77 | NaN | 1314.235000 | 1391.170000 |
7 | 서울 금천구 | 1313.940000 | NaN | 1305.565000 | 1287.580 | NaN | 1351.600000 | NaN | 1282.46 | 1291.67 | NaN | 1313.035000 | 1379.390000 |
8 | 서울 노원구 | 1340.890000 | 1421.850000 | 1370.966667 | NaN | 1373.275000 | 1398.000000 | NaN | NaN | NaN | NaN | NaN | 1431.435000 |
9 | 서울 도봉구 | 1331.920000 | 1327.320000 | 1329.896000 | 1557.000 | 1291.470000 | NaN | NaN | NaN | NaN | NaN | 1345.106667 | 1309.936667 |
10 | 서울 동대문구 | 1305.485000 | 1304.980000 | 1296.390000 | 1372.500 | 1367.550000 | 1383.838000 | NaN | NaN | NaN | NaN | 1329.100000 | 1386.727500 |
11 | 서울 동작구 | 1413.840000 | 1345.275000 | NaN | 1358.030 | NaN | 1484.350000 | NaN | NaN | NaN | NaN | 1393.290000 | 1388.840000 |
12 | 서울 마포구 | NaN | 1371.190000 | 1408.970000 | 1556.175 | NaN | 1493.846000 | NaN | NaN | NaN | NaN | 1453.000000 | 1420.580000 |
13 | 서울 서대문구 | 1357.690000 | 1358.230000 | 1351.905000 | 1320.810 | 1360.226667 | 1352.713333 | NaN | NaN | NaN | NaN | 1352.840000 | 1357.805000 |
14 | 서울 서초구 | 1391.770000 | 1408.220000 | 1388.463333 | 1629.940 | 1402.270000 | 1590.833333 | 1272.39 | NaN | NaN | NaN | 1417.290000 | 1468.968000 |
15 | 서울 성동구 | 1361.450000 | 1650.000000 | 1312.230000 | 1342.190 | 1418.770000 | 1471.978333 | NaN | NaN | NaN | 1299.58 | 1350.725000 | 1572.695000 |
16 | 서울 성북구 | 1299.240000 | 1333.710000 | 1301.643333 | 1354.725 | 1309.065000 | 1407.230000 | NaN | NaN | 1263.84 | NaN | 1306.835000 | 1353.160000 |
17 | 서울 송파구 | 1364.285000 | 1381.450000 | 1356.130000 | 1412.840 | 1359.053333 | 1431.812500 | NaN | NaN | NaN | NaN | 1367.140000 | 1378.280000 |
18 | 서울 양천구 | 1312.826667 | 1323.050000 | 1269.060000 | NaN | 1333.678000 | 1447.435000 | NaN | 1292.87 | NaN | NaN | 1347.365000 | 1401.385000 |
19 | 서울 영등포구 | 1350.437500 | 1580.468333 | 1349.940000 | 1345.000 | 1338.742500 | 1600.968333 | NaN | 1276.42 | NaN | NaN | 1349.728000 | 1494.000000 |
20 | 서울 용산구 | NaN | 1769.362500 | NaN | NaN | NaN | 1885.408333 | NaN | NaN | NaN | NaN | NaN | 1800.507500 |
21 | 서울 은평구 | 1332.586000 | 1341.520000 | 1338.050000 | NaN | 1334.837500 | NaN | NaN | NaN | NaN | 1418.00 | 1314.870000 | 1399.000000 |
22 | 서울 종로구 | NaN | 1989.000000 | NaN | 1459.000 | 1425.000000 | 1943.000000 | NaN | NaN | NaN | NaN | NaN | 1665.775000 |
23 | 서울 중구 | NaN | 2067.053333 | NaN | 1758.000 | NaN | 1945.522000 | NaN | NaN | 1401.87 | NaN | NaN | 1618.000000 |
24 | 서울 중랑구 | 1315.525000 | 1305.710000 | 1303.493333 | 1359.885 | 1347.587500 | NaN | NaN | NaN | NaN | NaN | 1338.420000 | 1291.190000 |
[출력 결과]
지역 | GS칼텍스_셀프 | GS칼텍스_일반 | S-OIL_셀프 | S-OIL_일반 | SK에너지_셀프 | SK에너지_일반 | 알뜰(ex)_셀프 | 알뜰주유소_셀프 | 알뜰주유소_일반 | 자가상표_일반 | 현대오일뱅크_셀프 | 현대오일뱅크_일반 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 서울 강남구 | 1443.440000 | 1627.111111 | 1420.760000 | 1593.250 | 1416.866250 | 1734.166667 | NaN | NaN | NaN | NaN | 1385.230000 | 1525.705000 |
1 | 서울 강동구 | 1413.275000 | 1430.353333 | 1418.970000 | 1498.000 | 1445.000000 | 1653.695000 | NaN | NaN | NaN | NaN | 1403.063333 | 1424.340000 |
2 | 서울 강북구 | 1293.675000 | 1313.190000 | 1275.100000 | 1325.710 | 1329.690000 | 1295.840000 | NaN | NaN | NaN | NaN | 1322.300000 | NaN |
3 | 서울 강서구 | 1361.773333 | 1385.840000 | 1376.913333 | NaN | 1325.516667 | 1433.664000 | NaN | 1273.11 | 1264.06 | NaN | 1299.240000 | 1362.530000 |
4 | 서울 관악구 | 1415.450000 | 1429.970000 | NaN | 1397.015 | 1411.840000 | 1436.280000 | NaN | 1313.00 | 1329.45 | NaN | 1392.550000 | 1407.050000 |
5 | 서울 광진구 | NaN | 1360.394000 | 1337.160000 | 1344.970 | NaN | 1373.623333 | NaN | NaN | 1309.19 | NaN | 1358.733333 | 1337.940000 |
6 | 서울 구로구 | 1285.940000 | 1511.173333 | 1286.420000 | 1393.832 | NaN | 1336.065000 | NaN | NaN | 1321.77 | NaN | 1314.235000 | 1391.170000 |
7 | 서울 금천구 | 1313.940000 | NaN | 1305.565000 | 1287.580 | NaN | 1351.600000 | NaN | 1282.46 | 1291.67 | NaN | 1313.035000 | 1379.390000 |
8 | 서울 노원구 | 1340.890000 | 1421.850000 | 1370.966667 | NaN | 1373.275000 | 1398.000000 | NaN | NaN | NaN | NaN | NaN | 1431.435000 |
9 | 서울 도봉구 | 1331.920000 | 1327.320000 | 1329.896000 | 1557.000 | 1291.470000 | NaN | NaN | NaN | NaN | NaN | 1345.106667 | 1309.936667 |
10 | 서울 동대문구 | 1305.485000 | 1304.980000 | 1296.390000 | 1372.500 | 1367.550000 | 1383.838000 | NaN | NaN | NaN | NaN | 1329.100000 | 1386.727500 |
11 | 서울 동작구 | 1413.840000 | 1345.275000 | NaN | 1358.030 | NaN | 1484.350000 | NaN | NaN | NaN | NaN | 1393.290000 | 1388.840000 |
12 | 서울 마포구 | NaN | 1371.190000 | 1408.970000 | 1556.175 | NaN | 1493.846000 | NaN | NaN | NaN | NaN | 1453.000000 | 1420.580000 |
13 | 서울 서대문구 | 1357.690000 | 1358.230000 | 1351.905000 | 1320.810 | 1360.226667 | 1352.713333 | NaN | NaN | NaN | NaN | 1352.840000 | 1357.805000 |
14 | 서울 서초구 | 1391.770000 | 1408.220000 | 1388.463333 | 1629.940 | 1402.270000 | 1590.833333 | 1272.39 | NaN | NaN | NaN | 1417.290000 | 1468.968000 |
15 | 서울 성동구 | 1361.450000 | 1650.000000 | 1312.230000 | 1342.190 | 1418.770000 | 1471.978333 | NaN | NaN | NaN | 1299.58 | 1350.725000 | 1572.695000 |
16 | 서울 성북구 | 1299.240000 | 1333.710000 | 1301.643333 | 1354.725 | 1309.065000 | 1407.230000 | NaN | NaN | 1263.84 | NaN | 1306.835000 | 1353.160000 |
17 | 서울 송파구 | 1364.285000 | 1381.450000 | 1356.130000 | 1412.840 | 1359.053333 | 1431.812500 | NaN | NaN | NaN | NaN | 1367.140000 | 1378.280000 |
18 | 서울 양천구 | 1312.826667 | 1323.050000 | 1269.060000 | NaN | 1333.678000 | 1447.435000 | NaN | 1292.87 | NaN | NaN | 1347.365000 | 1401.385000 |
19 | 서울 영등포구 | 1350.437500 | 1580.468333 | 1349.940000 | 1345.000 | 1338.742500 | 1600.968333 | NaN | 1276.42 | NaN | NaN | 1349.728000 | 1494.000000 |
20 | 서울 용산구 | NaN | 1769.362500 | NaN | NaN | NaN | 1885.408333 | NaN | NaN | NaN | NaN | NaN | 1800.507500 |
21 | 서울 은평구 | 1332.586000 | 1341.520000 | 1338.050000 | NaN | 1334.837500 | NaN | NaN | NaN | NaN | 1418.00 | 1314.870000 | 1399.000000 |
22 | 서울 종로구 | NaN | 1989.000000 | NaN | 1459.000 | 1425.000000 | 1943.000000 | NaN | NaN | NaN | NaN | NaN | 1665.775000 |
23 | 서울 중구 | NaN | 2067.053333 | NaN | 1758.000 | NaN | 1945.522000 | NaN | NaN | 1401.87 | NaN | NaN | 1618.000000 |
24 | 서울 중랑구 | 1315.525000 | 1305.710000 | 1303.493333 | 1359.885 | 1347.587500 | NaN | NaN | NaN | NaN | NaN | 1338.420000 | 1291.190000 |
sample_202010
을 2020-10-oil-price.csv로 내보냅니다.- index는 지정하지 않습니다.
In [45]:
# 코드를 입력해 주세요
sample_202010.to_csv('2020-10-oil-price.csv', index=False)