Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
相談LT #PyNyumon / 20170710
Search
yuzutas0
PRO
July 11, 2017
Technology
1
1.5k
相談LT #PyNyumon / 20170710
"Python入門者の集い" のLT資料となります。
http://yuzutas0.hatenablog.com/entry/2017/07/11/110000
に補足を掲載しています。
yuzutas0
PRO
July 11, 2017
Tweet
Share
More Decks by yuzutas0
See All by yuzutas0
OLSにおける推定量β1=共分散÷分散の導出 / 20230517
yuzutas0
PRO
2
580
民間企業におけるデータ整備の課題と工夫 / 20220305
yuzutas0
PRO
14
7.4k
累計参加者8,500名! #DataEngineeringStudy の43スライドから学ぶ、データエンジニアリングの羅針盤 / 20220224
yuzutas0
PRO
15
5.2k
あの人の自分戦略を聞きたい!2022 #devsumi / 20220218
yuzutas0
PRO
3
4k
データ基盤による利益最大化と初期構築プロセス / 20220209
yuzutas0
PRO
10
6.5k
Engineer Career Lounge#1「エンジニアの成長戦略を考える」 #ECLounge カンニングペーパー / 20211217
yuzutas0
PRO
3
1.5k
Data Management Guide - 事業成長を支えるデータ基盤のDev&Ops #TechMar / 20211210
yuzutas0
PRO
19
24k
[投影資料]『実践的データ基盤への処方箋』の刊行にあたって #TechMar / 20210210-2
yuzutas0
PRO
1
3.5k
DXを妨げる要因と実現へのアプローチ by @yuzutas0 / 20211022
yuzutas0
PRO
55
46k
Other Decks in Technology
See All in Technology
「Linux」という言葉が指すもの
sat
PRO
4
150
今日から始めるAWSセキュリティ対策 3ステップでわかる実践ガイド
yoshidatakeshi1994
0
130
Wantedlyの開発組織における生成AIの浸透プロジェクトについて
kotominaga
2
130
roppongirb_20250911
igaiga
1
260
AI時代を生き抜くエンジニアキャリアの築き方 (AI-Native 時代、エンジニアという道は 「最大の挑戦の場」となる) / Building an Engineering Career to Thrive in the Age of AI (In the AI-Native Era, the Path of Engineering Becomes the Ultimate Arena of Challenge)
jeongjaesoon
0
270
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
4
590
IoT x エッジAI - リアルタイ ムAI活用のPoCを今すぐ始め る方法 -
niizawat
0
130
品質視点から考える組織デザイン/Organizational Design from Quality
mii3king
0
220
エンジニアが主導できる組織づくり ー 製品と事業を進化させる体制へのシフト
ueokande
1
120
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
460
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
1.2k
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
410
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Unsuck your backbone
ammeep
671
58k
Into the Great Unknown - MozCon
thekraken
40
2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
820
Documentation Writing (for coders)
carmenintech
74
5k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Context Engineering - Making Every Token Count
addyosmani
3
64
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Transcript
૬ஊLT Pythonॳ৺ऀ͕Jupyter+BigQueryͰσʔλੳج൫Λ࡞Γ࢝Ί͕ͨ ͦΖͦΖݶքͳͷͰॿ͚͍ͯͩ͘͞ 2017-07-10 Pythonೖऀͷू͍#5 presented by @yuzutas0
https://www.pexels.com/photo/reptile-snake-snape-36448/
Pythonॳ৺ऀ͕ ͦΖͦΖݶքͳͷͰ ॿ͚͍ͯͩ͘͞ Jupyter+BigQueryͰσʔλੳج൫Λ࡞Γ࢝Ί͕ͨ
Pythonॳ৺ऀ͕ ͦΖͦΖݶքͳͷͰ ॿ͚͍ͯͩ͘͞ Jupyter+BigQueryͰσʔλੳج൫Λ࡞Γ࢝Ί͕ͨ
ɹ@yuzutas0 ɹPythonॳ৺ऀ ɹ- ࣄSREͱ͔ ɹ- ୲γεςϜͷར༻ݴޠ ɹɹJava,
Node.js, Ruby, Golang, Objective-C
ɹڥߏஙແʹΫϦΞ
ɹ“Hello World” Ͱ·͔͞ͷΤϥʔʂ
ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ͜Ε ɹίϩϯ͕͍ΔΒ͍͠
ͱ͍͏ঢ়ଶ͔Βελʔτ
Pythonॳ৺ऀ͕ ͦΖͦΖݶքͳͷͰ ॿ͚͍ͯͩ͘͞ Jupyter+BigQueryͰσʔλੳج൫Λ࡞Γ࢝Ί͕ͨ
ɹɹ1. ࢪࡦੳ → Build/Measure/Learn ɹɹ2. ఆৗతͳKPIϞχλϦϯά ɹɹ3. ػցֶशͷσʔληοτ४උ ɹΈΜͳσʔλ͍͍ͨΑͶ
ɹΈΜͳ͕σʔλΛಠࣗʹͬͨ ݩσʔλ ऩू/Ճ දࣔ/ੳ ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺA
ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺB ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺC ϩάA DB ϩάB Excel Redash Tableau
ɹτϥϒϧଟൃ - πʔϧ͝ͱʹച্ͷ͕ҧ͏ʂ ݩσʔλ ऩू/Ճ දࣔ/ੳ
ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺA ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺB ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺC ϩάA DB ϩάB Excel Redash Tableau
ɹՃϩδοΫͷผཧ͕ ݩσʔλ ऩू/Ճ දࣔ/ੳ ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺA
ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺB ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺC ϩάA DB ϩάB Excel Redash Tableau
ɹͳͷͰBigQueryʹҰݩԽ ݩσʔλ ऩू/Ճ දࣔ/ੳ ɹɹɹɹɹɹɹ෦ॺA
ɹɹɹɹɹɹɹ෦ॺB ɹɹɹɹɹɹɹ෦ॺC ϩάA DB ϩάB Excel Redash Tableau BigQuery
ɹ֤෦ॺͷಘҙͳΓํɾπʔϧม͑ͳ͍ ݩσʔλ ऩू/Ճ දࣔ/ੳ ɹɹɹɹɹɹɹ෦ॺA
ɹɹɹɹɹɹɹ෦ॺB ɹɹɹɹɹɹɹ෦ॺC ϩάA DB ϩάB Excel Redash Tableau BigQuery
ɹॲཧεΫϦϓτͱͯ͠PythonΛ࠾ Jupyter Notebook ಈ࡞֬ೝ͍͢͠ ه/࠶ݱ͍͢͠ Pandas σʔλՃ͍͢͠
JupyterͰ֬ೝ͍͢͠
Pythonॳ৺ऀ͕ ͦΖͦΖݶքͳͷͰ ॿ͚͍ͯͩ͘͞ Jupyter+BigQueryͰσʔλੳج൫Λ࡞Γ࢝Ί͕ͨ
Ϟϊಈ͍͍ͯΔ ɹྗͷ݁থ
.envʹΑΔڥมͷಡΈࠐΈ → ςετڥΛ ɹྗͷ݁থ
unittest ͰطଘExcelγʔτͷܭࢉ݁Ռͱಉ͡ʹͳΔ͜ͱΛࣗಈݕূ ɹྗͷ݁থ
Python3.4ʙͷEnumΛ׆༻ ˠ DictionaryܕͰΛཧ ɹྗͷ݁থ
EnumͷࣙॻσʔλΛ ͍͘͢͢ΔϝιουΛ جఈΫϥεʹू ɹྗͷ݁থ
දࣔΫϥεͱModelΫϥεͷI/FΛ҆ఆͤ͞ΔͨΊʹ Python3.5ʙͷTypeHintsΛ׆༻ ɹྗͷ݁থ
ച্ͳͲͷࢦඪ BQ࿈ܞʹΑΔ Immutableͳ Ϟσϧʹఆٛ ɹྗͷ݁থ
BQ༻ΫΤϦPython3.6ʙͷf-stringsΛ׆༻ ϝιουΓग़͠ → Ҿ͖͠Ͱมείʔϓ੍ޚ ɹྗͷ݁থ
ɹ͜ͷΜʢʹฉ͘ͷ͕ૣͦ͏ʣ ෦༷ΛѲɺ ύϑΥʔϚϯεΛ࠷దԽͰ͖Δ ʢDocsɾॻ੶ɾίʔυΛಡΉϑΣʔζʣ ֎෦༷ΛѲɺอकੑΛ্Ͱ͖Δ ʢଞਓͷίʔυΛಡΉˍॻ͖͢ϑΣʔζʣ ɹݴޠͷֶशεςʔδͱͯ͠
ػೳཁ݅ΛຬͨͤΔ ʢͻͨ͢Βॻ͘ˍάάΔϑΣʔζʣ ڥߏங Hello World ͬ͘͟Γ σόοά ɾ݁߹ ϕλʔͳॻ͖ํ ศརͳϥΠϒϥϦ ϕϯνϚʔΫˍ νϡʔχϯά ෦मਖ਼ ͖ͪΜͱ σόοά
εϥεϥΘ͔Βͳ͍Python ɹཁ͢Δʹ
1. ͨͿΜ໊લۭؒܥ 2. JavaͩͱͰ͖ΔͷͰPythonͰ͖ͯ΄͍͠ܥ 3. IntelliJʢPythonϓϥάΠϯಋೖࡁΈʣܥ 4. ςετίʔυܥ
ɹಈ࡞͢Δ͚Ͳ͍ͨ͠Ϧετ
ϥΠτχϯάྻڍ͍ͯ͘͠ͷͰ ʮ͜͏͢Εղܾ͢ΔͷͰʁʯ ʮ͜͏͍͏࣭ͷํΛͯ͘͠Εʯ ͳͲͳͲɺޙͰڭ͍͑ͯͩ͘͞
__init__.py Ͱ import ͠·͘Δ༷͕͏͍͟ɻ ͳͯ͘ಈ͘ՕॴͱɺඞਢͷՕॴ͕͋Δʁ ɹ1. ͨͿΜ໊લۭؒܥ
ผϞδϡʔϧͷఆΛ͏ͱ͖ʹɺ Πϯϙʔτจ্͕ख͍͘͘έʔεͱ ͦ͏Ͱͳ͍έʔε͕͋Δ ɹ1. ͨͿΜ໊લۭؒܥ
Ϋϥεͷ getter/setter Λলུ͍ͨ͠ ʢ@Lombok.DataతͳϥΠϒϥϦ͕ཉ͍͠ʣ ɹ2. JavaͩͱͰ͖ΔͷͰPythonͰ͖ͯ΄͍͠ܥ
__init__() ʹશϑΟʔϧυΛ٧ΊΔॲཧΛॻ͘ͷ͕खؒ ʢ@AllArgsConstructerతͳϥΠϒϥϦ͕ཉ͍͠ʣ ɹ2. JavaͩͱͰ͖ΔͷͰPythonͰ͖ͯ΄͍͠ܥ
pandasͷdataframe['column']Λ PythonΦϒδΣΫτͷ column ϓϩύςΟʹίϐʔ͍ͨ͠ ʢModelMapper͕ཉ͍͠ʣ ɹ2. JavaͩͱͰ͖ΔͷͰPythonͰ͖ͯ΄͍͠ܥ
EnumͷvalueΛdictionaryܕͰ͍࣋ͬͯΔ͕ɺ ͬͱָʹΛऔಘ͍ͨ͘͢͠͠ ʢશEnumΛϧʔϓͤͯ֘͢͞ΔΛऔಘ͢ΔϝιουΛॻ͍͍ͯΔ͕ʣ ɹ2. JavaͩͱͰ͖ΔͷͰPythonͰ͖ͯ΄͍͠ܥ
IntelliJͰͷΠϯϙʔτ͕ઈରύεʹͳΔ͚Ͳɺ ࣮ߦ࣌ʹղܾͰ͖ͳ͍ͷͰɺ૬ରύεʹ͍ͨ͠ ɹ3. IntelliJʢPythonϓϥάΠϯಋೖࡁΈʣܥ
τοϓϨϕϧϞδϡʔϧͷΠϯϙʔτจΛ import .xxx.yyy.zzz Ͱͳ͘ import xxx.yyy.zzz ͱهड़ɻ IDEͩͱSyntaxErrorʹͳΔ͕࣮ߦ௨Δɻ ٯʹIDEʹ߹Θͤͯʮ.ʯͰ࢝ΊΔͱ͚͜Δɻ͜Ε໊લۭؒʁ
ɹ3. IntelliJʢPythonϓϥάΠϯಋೖࡁΈʣܥ
IntelliJͷRefactoringͰΫϥε໊Λม͑ͨͱ͖ʹ ϑΝΠϧ໊͕ࣗಈͰ࿈ಈͯ͠มΘͬͯ͘Εͳ͍ɻ ٯવΓɻຯʹ1൪ਏ͍ɻ ɹ3. IntelliJʢPythonϓϥάΠϯಋೖࡁΈʣܥ
testσΟϨΫτϦҎԼͷશεΫϦϓτΛҰׅͰ࣮ߦ͍ͨ͠ɻ ΦϓγϣϯΛ͚ͭͯσΟϨΫτϦ͕ωετ͢Δͱࣦഊͯ͠͠·͏ ͳͷͰݱࡏ֤σΟϨΫτϦΛݸผͰࢦఆ͍ͯ͠Δɻ ʢ֦ுੑ͕ͳ͍ʣ ɹ4. ςετίʔυܥ
ʢ͜ΕPythonͷ࣭Ͱͳ͍͚Ͳʣ Excelͷग़ྗ༰Λςετ͢Δͱ͖ɺϑΝΠϧ͕ग़Δͱअຐɻ ϞοΫΛ͏ʁ or ࣮ߦޙʹϑΝΠϧΛຖճআ͢Δʁ Ͳ͕͍͍ͬͪͰ͔͢Ͷʔʁ ɹ4. ςετίʔυܥ
Pythonॳ৺ऀ͕ ͦΖͦΖݶքͳͷͰ ॿ͚͍ͯͩ͘͞ Jupyter+BigQueryͰσʔλੳج൫Λ࡞Γ࢝Ί͕ͨ
ॿ͚͍ͯͩ͘͞
Q&AαʔϏεͰ ฉ͚ྑ͔ͬͨʢʁʣ ɹهɿձʹདྷͯؾ͍ͨ͜ͱ
ͨͱ͑ ɹهɿձʹདྷͯؾ͍ͨ͜ͱ
teratail ɹهɿձʹདྷͯؾ͍ͨ͜ͱ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ presented by @yuzutas0 https://www.pexels.com/photo/reptile-snake-snape-36448/