Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Beginning PyData with Django and Jupyter
Search
kuma127
September 17, 2019
Programming
3
5.7k
Beginning PyData with Django and Jupyter
PyCon JP 2019 9/17 16:15~
kuma127
September 17, 2019
Tweet
Share
More Decks by kuma127
See All by kuma127
ReactPyを使ってreact likeにUIをPythonで実装する
kuma127
0
170
私と#pyhack
kuma127
0
290
配信チームの準備と当日進行について
kuma127
0
370
石川雅規のことをもっと知ってもらいたいLT
kuma127
0
1.5k
DjangoとJupyterで捗るPyData
kuma127
1
1.7k
趣味駆動学習のススメ〜野球の場合〜
kuma127
0
350
プロスペクトをデータで紹介
kuma127
2
2.7k
気軽に手に入る成績データで野球分析をしてみた
kuma127
0
2.1k
Python is simple and deep
kuma127
0
55
Other Decks in Programming
See All in Programming
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
350
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
520
20 years of Symfony, what's next?
fabpot
2
330
関数の挙動書き換える
takatofukui
4
770
なあ兄弟、 余白の意味を考えてから UI実装してくれ!
ktcryomm
10
11k
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
420
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
180
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
1.2k
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
220
社内オペレーション改善のためのTypeScript / TSKaigi Hokuriku 2025
dachi023
1
540
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
290
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
37
23k
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
Bash Introduction
62gerente
615
210k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Automating Front-end Workflow
addyosmani
1371
200k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Being A Developer After 40
akosma
91
590k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
[SF Ruby Conf 2025] Rails X
palkan
0
470
For a Future-Friendly Web
brad_frost
180
10k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Transcript
2019/9/17 DjangoͱJupyterͰ࢝ΊΔPyData ۽୩ TwitterIDɿ@kumappp27
͓લɺ୭Α ✤ ʮ۽୩ʯʢϋϯυϧωʔϜɿ͘·ͽʣͱ͍͍·͢ ✤ TwitterID:@kumappp27 ✤ ਓࡐܥͷձࣾͷWebΤϯδχΞ ✤ Pythonझຯ։ൃͰΑ͘ར༻ɺ େ͖ͳٿͷγεςϜΛ࡞
✤ #pyconjp ॳొஃͰ͢ʂυۓுͯ͠·͕͓ٓ͘͢͠ئ͍ ͠·͢ʂ
ຊͷ͓
DjangoͱJupyterͰ࢝ΊΔPyData
ൃදʹࢸ͖͔͚ͬͨͬᶃ ✤ ٿͷσʔλੳ͕ͨ͘͠Pythonελʔτ ✤ Jupyter NotebookΛѪ༻ ✤ Webͷཱࣝͭ͜ͱ͕໌ʢεΫϨΠϐϯάͱ͔
WebDataɺͲͬͪΓ͍ͨʂ
ൃදʹࢸ͖͔͚ͬͨͬᶄ ✤ ௐͯΈͨΒ DjangoͷϞσϧΛJupyter্Ͱ͑Δ ✤ ͔͠؆୯ɺͦͯ͠ສೳʂ ✤ ͜Εར༻ɾڞ༗͢Δ͔͠ͳ͍ʂ
ຊτʔΫͷత ✤ Django×Jupyterͳڥͷྑ͞Λ͑Δ͜ͱ ✤ ΦʔϧΠϯϫϯڥͰ࡞ۀֶशḿΔ͜ͱ
ΞδΣϯμ ✤ ͢͜ͱԼهΛ༧ఆ͍ͯ͠·͢ 1. DjangoͱJupyterͷ؆୯ͳհ 2. ਪ͍ͨ͠ཧ༝ 3. Django×JupyterͷΈ߹Θ͞ΔΠϝʔδ 4.
ڥߏஙํ๏ 5. ΦεεϝϥΠϒϥϦɾϓϥάΠϯҰྫ
DjangoͱJupyterͷ؆୯ͳհ
Djangoʹ͍ͭͯ ✤ DjangoʢδϟϯΰʣͱɺPythonͰ࣮͞ΕͨWeb ϑϨʔϜϫʔΫɻMVCσβΠϯύλʔϯʹ؇͔ʹै ͏ɻʢWikipediaΑΓʣ ✤ ڧྗͳORM͕͋Δ͜ͱͱɺϑϧελοΫͰ͋Δ͕ ࠾༻ཧ༝ɻ
Jupyterʹ͍ͭͯ ✤ ࠓճJupyterͷఏڙ͢ΔαʔϏεͷ ʮJupyter NotebookʯΛରɻ ✤ Jupyter Notebookɺίʔυͷଈ࣮࣌ߦՄࢹԽɺυ Ωϡϝϯτͷ࡞͕ߦ͑ΔWebΞϓϦέʔγϣϯɻ
Django×JupyterΛਪ͍ͨ͠ཧ༝
ਪ͍ͨ͠ཧ༝ 1. ϥΠϒϥϦΛ1ճΠϯετʔϧ͢Δ͚ͩ 2. DjangoٴͼJupyterͷϓϥάΠϯ͕๛ ˠΧόʔͰ͖Δൣғ͕͘ͳΔ
ͭ·Γ… ✤ खࠒʹDjango(Web)ͱJupyter(Data)ͷೋྲྀͳ ສೳڥ͕࡞ΕΔ
Django×JupyterͷΈ߹Θ͞ΔΠϝʔδ
DjangoͱJupyter͕Έ߹Θ͞ΔΠϝʔδ ✤ DjangoͷϞσϧΛJupyter্Ͱ͑Δʮ͚ͩʯ ✤ ओʹDjangoͷϞσϧΛར༻ͨ͠ڧྗͳORMͷԸܙΛ Jupyter্Ͱत͔Δܗ
ຊདྷJupyterͰDBʹΞΫηε͢Δ࣌ ✤ Jupyter্ͰɺDBʹͭͳ͙Πϝʔδ SQL
JupyterͰDBʹͭͳ͙࣌ͷ ✤ ඞཁͳॲཧ͕ଟ͍ - Jupyter্Ͱೝূઃఆ ɹଓॲཧ͕ඞཁ - جຊతʹSQLͰσʔλͷ ɹΓऔΓΛߦ͏ඞཁ͋Γ
Django×JupyterͰ ✤ DjangoΛհͯ͠ɺDBʹΞΫηε͢ΔΠϝʔδ ORM
DBར༻͕؆୯ʹ ✤ ࡞ۀͷ؆ུԽ - ଓઃఆɺ վΊͯΔඞཁͳ͠ - DjangoͷORM͕͑ΔͷͰɺ σʔλॲཧϥΫ
Έ߹ΘͤΔͱ͜Μͳ͜ͱ͕ग़དྷΔ
WebΞϓϦσʔλΛαΫοͱੳ ✤ WebΞϓϦͷσʔλΛɺͦͷ··Jupyter্Ͱར༻Ͱ͖Δ ✤ طଘڥʹେ͖ͳӨڹͳ͠ ✤ άϥϑදࣔεϥΠυԽ༰қ
εΫϦϓτΛརศతʹ࣮ߦͰ͖Δ ✤ WebΞϓϦ্ͷσʔλΛCSVʹՃ͢Δɺ ͱ͍ͬͨ࡞ۀஞҰڍಈΛ֬ೝ͠ͳ͕Β࣮ߦͰ͖Δ ✤ pandas͑ΔͷͰՃϥΫ ✤ ※વ࠷ॳςετڥͰ࣮ߦ͢Δɺͱ͍ͬͨ࠷ݶͷ ྀඞཁ
·ͱΊΔͱ… ✤ Web্ͷσʔλΛѻ͏ͨΊͷɺ ΠϯλʔϑΣʔεʹ Jupyter͕ͳͬͯ͘Ε͍ͯΔʂ
Django×Jupyterͷڥߏஙํ๏
Djangoͷڥߏங
Djangoͷڥߏங ✤ جຊతʹެࣜαΠτ௨Γͷߏஙํ๏ͰOK ✤ $ pip install django ✤ $
conda install django (Anacondaͷ߹) ✤ ※͍ͣΕͷ߹ԾڥΛཱͯͯΠϯετʔϧ͢Δ ͷ͕Φεεϝ
ΞϓϦͷ࡞ ✤ JupyterΛಋೖ͢ΔͨΊʹɺͱΓ͋͑ͣΞϓϦΛ࡞ $ django-admin startproject test_project $ cd test_project
$ python manage.py startapp test_app ✤ ʮtest_projectʯͱ͍͏ϓϩδΣΫτʹʮtest_appʯͱ ͍͏ΞϓϦΛ࡞ ✤ ※ৄ͘͠ެࣜυΩϡϝϯτࢀর (https://docs.djangoproject.com/ja/2.2/)
Jupyterͷಋೖ
ಋೖͱͬͯ؆୯ ✤ django-extensions ΛΠϯετʔϧ͢Δ͚ͩʂ ✤ pipͰΠϯετʔϧ͢Δ߹ $ pip install
django-extensions ✤ setting.pyͷINSTALLED_APPSʹҎԼΛՃ ‘django_extensions' ✤ ࢀߟɿhttps://github.com/django-extensions/django-extensions
JupyterͷىಈϥΫνϯ ✤ manage.pyͷ͋ΔϑΥϧμͰҎԼίϚϯυΛ࣮ߦ $ python manage.py shell_plus —notebook ✤ ىಈʹޭͨ͠Βɺදࣔ͞ΕͨURLΛϒϥβͰΞΫηε
✤ $ jupyter notebook Λ࣮ߦ͢Δͷͱ΄΅ಉ͡ʂ
DjangoͷϞσϧΛJupyterͰར༻͢Δ ✤ Jupyter্ͰϞσϧΛimport͢Δ͚ͩͰ ௨ৗ௨ΓϞσϧ͕ར༻Մೳʂ ✤ ෳࡶͳઃఆෆཁ ✤ ※ڥʹΑͬͯԼه4ߦͷ࣮ߦ͕ඞཁʹͳΓ·͢
ར༻Πϝʔδ ✤ DjangoͷORMͰऔಘͨ͠σʔλΛσʔλϑϨʔϜʹม
ʢ͓·͚ʣDockerͷઃఆͱҙ ✤ جຊతͳ࡞ΓํࠓճׂѪɺ ৄ͘͠DockerެࣜυΩϡϝϯτʹͯ ʢhttps://docs.docker.com/compose/django/ʣ ✤ Dockerʹͯઌड़ͷJupyterͷಋೖ·Ͱߦ͏ࡍɺ Jupyter༻ͷϙʔτͷ͚͕݀͋ඞਢͳͷͰҙ ΞΫηεͰ͖ͳ͘ͳΔʢܦݧஊʣ
ΦεεϝϥΠϒϥϦɾϓϥάΠϯҰྫ
ΦεεϝϥΠϒϥϦɾϓϥάΠϯͷҰྫ ✤ DjangoJupyterΛར༻͢Δ্Ͱ ཱͭϥΠϒϥϦϓϥάΠϯΛग़དྷΔݶΓհ ✤ ଞʹͨ͘͞Μ͋ΔͷͰɺڵຯΛ࣋ͬͨํௐͯΈ ͍ͯͩ͘͞
PyDataʹ͓͍ͯͷΦεεϝ ✤ Numpy ଟ࣍ݩྻΛαϙʔτ͢Δɺܭࢉ༻Ϟδϡʔϧ ػցֶशͷԋࢉʹศར ✤ pandas σʔλϑϨʔϜܗࣜͷྻΛఏڙ͢ΔϥΠϒϥϦ σʔλͷՄࢹԽɾՃʹ༏ΕΔ ✤
matplotlib PythonNumpyͷͨΊͷάϥϑඳըϥΠϒϥϦ ✤ ※ػցֶशपΓͷπʔϧࢲ͕ະܦݧͷͨΊ֎͍ͯ͠·͢…
Jupyterʹ͓͍ͯͷΦεεϝ ✤ nbextensions Jupyterʹ֦ுػೳΛಋೖग़དྷΔ LaTeXͷڥͩͬͨΓίʔυܗͩͬͨΓ ✤ RISE JupyterΛεϥΠυܗࣜʹมͰ͖Δ ඳըͨ͠άϥϑΛͦͷ··εϥΠυࢿྉʹ͢Δ࣌ͳͲʹΦεεϝ
Djangoʹ͓͍ͯͷΦεεϝ ✤ Django REST Framework Web API Λߏங͢ΔͨΊͷπʔϧ ໘ͳAPIͷઃఆ͕؆ུԽͰ͖Δ ✤
Django-filter ↑ͷDRFͱΈ߹ΘͤͯݕࡧػೳΛՃͰ͖Δ ✤ Django-pandas ϞσϧͷσʔλΛσʔλϑϨʔϜܗࣜʹมͰ͖Δ ͦͯ͠σʔλͷՄࢹԽɾՃʹར༻Ͱ͖Δ
࠷ޙʹ
Django×JupyterΛͬͯΈͯ ✤ WebͱσʔλํͷݟΛಘΕͨ - σʔλॲཧɺWeb։ൃಉ͡ڥͰͰ͖Δ - ΞτϓοτͷੵΈॏͶ͕ՄࢹԽ - Ϟνϕʔγϣϯͷҡ࣋ͱɺ࣮ӡ༻Λҙֶࣝͨ͠श ✤
͜Ε͔ΒPyDataΛ࢝ΊΔͳΒɺͥͻDjango×JupyterΛʂ
Ҏ্ɺ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ