playdata
10/07 - 2019 주유소 판매가격 dataset
_JAEJAE_
2021. 10. 7. 16:03
2019 주유소 판매가격 dataset¶
In [1]:
import pandas as pd
import os
In [2]:
상반기 = pd.read_csv("./data/상반기 주유소 판매가격.csv", encoding='euc-kr')
하반기 = pd.read_csv("./data/하반기 주유소 판매가격.csv", encoding='euc-kr')
In [3]:
pd.concat([상반기, 하반기])
Out[3]:
번호 | 지역 | 상호 | 주소 | 기간 | 상표 | 셀프여부 | 고급휘발유 | 휘발유 | 경유 | 실내등유 | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | A0006039 | 서울 강남구 | (주)동하힐탑셀프주유소 | 서울 강남구 논현로 640 | 20190101 | SK에너지 | 셀프 | 1673 | 1465 | 1365 | 0 |
1 | A0006039 | 서울 강남구 | (주)동하힐탑셀프주유소 | 서울 강남구 논현로 640 | 20190102 | SK에너지 | 셀프 | 1673 | 1465 | 1365 | 0 |
2 | A0006039 | 서울 강남구 | (주)동하힐탑셀프주유소 | 서울 강남구 논현로 640 | 20190103 | SK에너지 | 셀프 | 1673 | 1465 | 1365 | 0 |
3 | A0006039 | 서울 강남구 | (주)동하힐탑셀프주유소 | 서울 강남구 논현로 640 | 20190104 | SK에너지 | 셀프 | 1673 | 1465 | 1365 | 0 |
4 | A0006039 | 서울 강남구 | (주)동하힐탑셀프주유소 | 서울 강남구 논현로 640 | 20190105 | SK에너지 | 셀프 | 1673 | 1465 | 1365 | 0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
91119 | A0032659 | 서울 중랑구 | 지에스칼텍스㈜ 소망주유소 | 서울 중랑구 망우로 475 | 20191227 | GS칼텍스 | 셀프 | 0 | 1540 | 1389 | 1100 |
91120 | A0032659 | 서울 중랑구 | 지에스칼텍스㈜ 소망주유소 | 서울 중랑구 망우로 475 | 20191228 | GS칼텍스 | 셀프 | 0 | 1540 | 1389 | 1100 |
91121 | A0032659 | 서울 중랑구 | 지에스칼텍스㈜ 소망주유소 | 서울 중랑구 망우로 475 | 20191229 | GS칼텍스 | 셀프 | 0 | 1540 | 1389 | 1100 |
91122 | A0032659 | 서울 중랑구 | 지에스칼텍스㈜ 소망주유소 | 서울 중랑구 망우로 475 | 20191230 | GS칼텍스 | 셀프 | 0 | 1540 | 1389 | 1100 |
91123 | A0032659 | 서울 중랑구 | 지에스칼텍스㈜ 소망주유소 | 서울 중랑구 망우로 475 | 20191231 | GS칼텍스 | 셀프 | 0 | 1540 | 1389 | 1100 |
181714 rows × 11 columns
In [4]:
import glob
In [18]:
gas_station = pd.concat([pd.read_csv(x, encoding='euc-kr') for x in glob.glob("./data/*.csv")])
In [19]:
from datetime import datetime, date
In [20]:
datetime.strptime("20211007", "%Y%m%d").weekday()
Out[20]:
3
In [21]:
date_dict = dict(zip(range(0, 7), [x + "요일" for x in "월화수목금토일"]))
gas_station['요일'] = gas_station['기간'].apply(lambda x: date_dict[datetime.strptime(str(x), "%Y%m%d").weekday()])
#gas_station['요일'] = pd.to_datetime(gas_station['기간'], format="%Y%m%d").dt.day_name()
In [22]:
unique_gas_station = gas_station[['지역', '상호', '상표']].drop_duplicates()
unique_gas_station
Out[22]:
지역 | 상호 | 상표 | |
---|---|---|---|
0 | 서울 강남구 | (주)동하힐탑셀프주유소 | SK에너지 |
184 | 서울 강남구 | (주)만정에너지 | GS칼텍스 |
368 | 서울 강남구 | (주)보성 세곡주유소 | SK에너지 |
552 | 서울 강남구 | (주)선진도곡주유소 | S-OIL |
736 | 서울 강남구 | (주)소모에너지엔테크놀러지 쎈트럴주유소 | GS칼텍스 |
... | ... | ... | ... |
80646 | 서울 용산구 | 현대오일뱅크(주)직영 소월길주유소 | SK에너지 |
82445 | 서울 은평구 | 삼융주유소 | SK에너지 |
86412 | 서울 중구 | 세화주유소 | 자가상표 |
88899 | 서울 중랑구 | 면목SELF주유소 | S-OIL |
89442 | 서울 중랑구 | 오천만주유소 | 알뜰주유소 |
528 rows × 3 columns
각 지역구 1등 주유소 브랜드 추출¶
In [23]:
unique_gas_statuon_group = unique_gas_station.groupby(['지역', '상표'])[['상호']].count()
In [24]:
unique_gas_statuon_group
Out[24]:
상호 | ||
---|---|---|
지역 | 상표 | |
서울 강남구 | GS칼텍스 | 12 |
S-OIL | 6 | |
SK에너지 | 19 | |
현대오일뱅크 | 5 | |
서울 강동구 | GS칼텍스 | 5 |
... | ... | ... |
서울 중랑구 | GS칼텍스 | 5 |
S-OIL | 6 | |
SK에너지 | 5 | |
알뜰주유소 | 1 | |
현대오일뱅크 | 1 |
114 rows × 1 columns
In [25]:
unique_gas_statuon_group.reset_index(inplace=True)
In [26]:
uni_gas_cnt = unique_gas_statuon_group.sort_values(by=['지역', '상호'], ascending=[True,False])
In [30]:
uni_gas_cnt.groupby(['지역']).first()
Out[30]:
상표 | 상호 | |
---|---|---|
지역 | ||
서울 강남구 | SK에너지 | 19 |
서울 강동구 | SK에너지 | 7 |
서울 강북구 | SK에너지 | 5 |
서울 강서구 | SK에너지 | 14 |
서울 관악구 | SK에너지 | 7 |
서울 광진구 | SK에너지 | 6 |
서울 구로구 | S-OIL | 7 |
서울 금천구 | SK에너지 | 4 |
서울 노원구 | GS칼텍스 | 6 |
서울 도봉구 | S-OIL | 6 |
서울 동대문구 | SK에너지 | 8 |
서울 동작구 | GS칼텍스 | 3 |
서울 마포구 | SK에너지 | 8 |
서울 서대문구 | SK에너지 | 7 |
서울 서초구 | GS칼텍스 | 15 |
서울 성동구 | SK에너지 | 7 |
서울 성북구 | GS칼텍스 | 8 |
서울 송파구 | SK에너지 | 14 |
서울 양천구 | SK에너지 | 14 |
서울 영등포구 | SK에너지 | 14 |
서울 용산구 | SK에너지 | 10 |
서울 은평구 | GS칼텍스 | 6 |
서울 종로구 | SK에너지 | 4 |
서울 중구 | SK에너지 | 5 |
서울 중랑구 | S-OIL | 6 |
In [28]:
uni_gas_cnt.지역.unique().size
Out[28]:
25
In [29]:
uni_gas_cnt
Out[29]:
지역 | 상표 | 상호 | |
---|---|---|---|
2 | 서울 강남구 | SK에너지 | 19 |
0 | 서울 강남구 | GS칼텍스 | 12 |
1 | 서울 강남구 | S-OIL | 6 |
3 | 서울 강남구 | 현대오일뱅크 | 5 |
6 | 서울 강동구 | SK에너지 | 7 |
... | ... | ... | ... |
110 | 서울 중랑구 | S-OIL | 6 |
109 | 서울 중랑구 | GS칼텍스 | 5 |
111 | 서울 중랑구 | SK에너지 | 5 |
112 | 서울 중랑구 | 알뜰주유소 | 1 |
113 | 서울 중랑구 | 현대오일뱅크 | 1 |
114 rows × 3 columns
In [31]:
gas_station
Out[31]:
번호 | 지역 | 상호 | 주소 | 기간 | 상표 | 셀프여부 | 고급휘발유 | 휘발유 | 경유 | 실내등유 | 요일 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | A0006039 | 서울 강남구 | (주)동하힐탑셀프주유소 | 서울 강남구 논현로 640 | 20190701 | SK에너지 | 셀프 | 1777 | 1577 | 1477 | 0 | 월요일 |
1 | A0006039 | 서울 강남구 | (주)동하힐탑셀프주유소 | 서울 강남구 논현로 640 | 20190702 | SK에너지 | 셀프 | 1777 | 1577 | 1477 | 0 | 화요일 |
2 | A0006039 | 서울 강남구 | (주)동하힐탑셀프주유소 | 서울 강남구 논현로 640 | 20190703 | SK에너지 | 셀프 | 1777 | 1577 | 1477 | 0 | 수요일 |
3 | A0006039 | 서울 강남구 | (주)동하힐탑셀프주유소 | 서울 강남구 논현로 640 | 20190704 | SK에너지 | 셀프 | 1777 | 1577 | 1477 | 0 | 목요일 |
4 | A0006039 | 서울 강남구 | (주)동하힐탑셀프주유소 | 서울 강남구 논현로 640 | 20190705 | SK에너지 | 셀프 | 1777 | 1577 | 1477 | 0 | 금요일 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
90585 | A0032659 | 서울 중랑구 | 지에스칼텍스㈜ 소망주유소 | 서울 중랑구 망우로 475 | 20190626 | GS칼텍스 | 셀프 | 0 | 1529 | 1389 | 0 | 수요일 |
90586 | A0032659 | 서울 중랑구 | 지에스칼텍스㈜ 소망주유소 | 서울 중랑구 망우로 475 | 20190627 | GS칼텍스 | 셀프 | 0 | 1529 | 1389 | 0 | 목요일 |
90587 | A0032659 | 서울 중랑구 | 지에스칼텍스㈜ 소망주유소 | 서울 중랑구 망우로 475 | 20190628 | GS칼텍스 | 셀프 | 0 | 1529 | 1389 | 0 | 금요일 |
90588 | A0032659 | 서울 중랑구 | 지에스칼텍스㈜ 소망주유소 | 서울 중랑구 망우로 475 | 20190629 | GS칼텍스 | 셀프 | 0 | 1529 | 1389 | 0 | 토요일 |
90589 | A0032659 | 서울 중랑구 | 지에스칼텍스㈜ 소망주유소 | 서울 중랑구 망우로 475 | 20190630 | GS칼텍스 | 셀프 | 0 | 1529 | 1389 | 0 | 일요일 |
181714 rows × 12 columns
In [ ]:
# pd.set_option("display.max_rows", None) :모든 행 전부 보여주기
In [52]:
gas_cnt = gas_station.groupby(['상호'])['번호'].count()
In [53]:
gas_cnt[gas_cnt == 365].index
Out[53]:
Index([' 현대오일뱅크㈜직영 구로셀프주유소', '(주)MS주유소', '(주)가재울뉴타운주유소', '(주)강서오일', '(주)기지에너지',
'(주)남경주유소', '(주)뉴명성산업 남성주유소', '(주)대농석유 남태령주유소', '(주)대양씨앤씨 사직주유소',
'(주)대청에너지 대청주유소',
...
'현대오일뱅크(주)직영 중곡현대주유소', '현대오일뱅크(주)직영 한양주유소', '현대오일뱅크㈜직영 고대셀프주유소',
'현대오일뱅크㈜직영 목동셀프주유소', '형산석유(주)원주유소', '홍능주유소', '화곡역주유소', '화랑대주유소',
'화성주유소', '흥국주유소'],
dtype='object', name='상호', length=403)
In [54]:
gas_365 = gas_station[gas_station.상호.isin(gas_cnt[gas_cnt == 365].index)].copy()
In [56]:
gas_365['상호'].value_counts()
Out[56]:
(주)동하힐탑셀프주유소 365
sk네트웍스(주)아리랑주유소 365
지에스칼텍스㈜ 세창주유소 365
중앙에너비스 종암지점 365
재정제2주유소 길음지점 365
...
(주)진우에너지 백운주유소 365
처음처럼주유소 365
정은주유소 365
영진주유소 365
지에스칼텍스㈜ 소망주유소 365
Name: 상호, Length: 403, dtype: int64
In [57]:
gas_365.head(2)
Out[57]:
번호 | 지역 | 상호 | 주소 | 기간 | 상표 | 셀프여부 | 고급휘발유 | 휘발유 | 경유 | 실내등유 | 요일 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | A0006039 | 서울 강남구 | (주)동하힐탑셀프주유소 | 서울 강남구 논현로 640 | 20190701 | SK에너지 | 셀프 | 1777 | 1577 | 1477 | 0 | 월요일 |
1 | A0006039 | 서울 강남구 | (주)동하힐탑셀프주유소 | 서울 강남구 논현로 640 | 20190702 | SK에너지 | 셀프 | 1777 | 1577 | 1477 | 0 | 화요일 |
In [59]:
gas_pivot = gas_365.pivot_table(index=['기간'], columns=['상호'], values=['휘발유'])
In [61]:
gas_pivot.columns = [x[1].strip() for x in gas_pivot.columns]
In [64]:
gas_pivot.corr()
Out[64]:
현대오일뱅크㈜직영 구로셀프주유소 | (주)MS주유소 | (주)가재울뉴타운주유소 | (주)강서오일 | (주)기지에너지 | (주)남경주유소 | (주)뉴명성산업 남성주유소 | (주)대농석유 남태령주유소 | (주)대양씨앤씨 사직주유소 | (주)대청에너지 대청주유소 | ... | 현대오일뱅크(주)직영 중곡현대주유소 | 현대오일뱅크(주)직영 한양주유소 | 현대오일뱅크㈜직영 고대셀프주유소 | 현대오일뱅크㈜직영 목동셀프주유소 | 형산석유(주)원주유소 | 홍능주유소 | 화곡역주유소 | 화랑대주유소 | 화성주유소 | 흥국주유소 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
현대오일뱅크㈜직영 구로셀프주유소 | 1.000000 | 0.981597 | 0.980783 | 0.981889 | 0.985775 | 0.964297 | 0.937343 | 0.951826 | 0.895470 | 0.981018 | ... | 0.964020 | -0.308938 | 0.983994 | 0.972308 | 0.981932 | 0.975438 | 0.978593 | 0.982561 | 0.898314 | 0.937478 |
(주)MS주유소 | 0.981597 | 1.000000 | 0.961468 | 0.993873 | 0.965961 | 0.954999 | 0.918157 | 0.936488 | 0.898714 | 0.999292 | ... | 0.933621 | -0.322952 | 0.963992 | 0.948914 | 0.968090 | 0.956789 | 0.962976 | 0.977199 | 0.849542 | 0.922769 |
(주)가재울뉴타운주유소 | 0.980783 | 0.961468 | 1.000000 | 0.968944 | 0.985082 | 0.956972 | 0.964858 | 0.954059 | 0.885049 | 0.961198 | ... | 0.977512 | -0.300642 | 0.988710 | 0.981071 | 0.983970 | 0.986216 | 0.966920 | 0.980361 | 0.905819 | 0.952460 |
(주)강서오일 | 0.981889 | 0.993873 | 0.968944 | 1.000000 | 0.971546 | 0.957937 | 0.932004 | 0.942265 | 0.898713 | 0.993548 | ... | 0.942827 | -0.310227 | 0.970653 | 0.954330 | 0.971752 | 0.964535 | 0.964215 | 0.982369 | 0.862538 | 0.928995 |
(주)기지에너지 | 0.985775 | 0.965961 | 0.985082 | 0.971546 | 1.000000 | 0.949720 | 0.945962 | 0.962355 | 0.889293 | 0.965444 | ... | 0.970604 | -0.264434 | 0.985486 | 0.973046 | 0.983161 | 0.984144 | 0.973259 | 0.979079 | 0.910891 | 0.942698 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
홍능주유소 | 0.975438 | 0.956789 | 0.986216 | 0.964535 | 0.984144 | 0.940312 | 0.954807 | 0.968250 | 0.880132 | 0.956295 | ... | 0.975556 | -0.219473 | 0.986924 | 0.974118 | 0.977666 | 1.000000 | 0.958174 | 0.975852 | 0.918391 | 0.952107 |
화곡역주유소 | 0.978593 | 0.962976 | 0.966920 | 0.964215 | 0.973259 | 0.959682 | 0.925839 | 0.944210 | 0.910352 | 0.962479 | ... | 0.940175 | -0.327339 | 0.968546 | 0.959379 | 0.975716 | 0.958174 | 1.000000 | 0.969108 | 0.882579 | 0.908503 |
화랑대주유소 | 0.982561 | 0.977199 | 0.980361 | 0.982369 | 0.979079 | 0.965406 | 0.951175 | 0.959294 | 0.914729 | 0.976770 | ... | 0.963612 | -0.333623 | 0.981680 | 0.976365 | 0.978709 | 0.975852 | 0.969108 | 1.000000 | 0.893209 | 0.952270 |
화성주유소 | 0.898314 | 0.849542 | 0.905819 | 0.862538 | 0.910891 | 0.888902 | 0.855364 | 0.926142 | 0.856449 | 0.847286 | ... | 0.898987 | -0.197440 | 0.900572 | 0.883517 | 0.880719 | 0.918391 | 0.882579 | 0.893209 | 1.000000 | 0.856537 |
흥국주유소 | 0.937478 | 0.922769 | 0.952460 | 0.928995 | 0.942698 | 0.916302 | 0.949047 | 0.906731 | 0.831783 | 0.922569 | ... | 0.960714 | -0.355016 | 0.954544 | 0.964809 | 0.927355 | 0.952107 | 0.908503 | 0.952270 | 0.856537 | 1.000000 |
403 rows × 403 columns
In [ ]: