Slide 1

Slide 1 text

૬ஊLT
 Pythonॳ৺ऀ͕Jupyter+BigQueryͰσʔλ෼ੳج൫Λ࡞Γ࢝Ί͕ͨ
 ͦΖͦΖݶքͳͷͰॿ͚͍ͯͩ͘͞
 
 
 2017-07-10
 Pythonೖ໳ऀͷू͍#5 presented by @yuzutas0
 https://www.pexels.com/photo/reptile-snake-snape-36448/

Slide 2

Slide 2 text


 Pythonॳ৺ऀ͕ 
 ͦΖͦΖݶքͳͷͰ 
 ॿ͚͍ͯͩ͘͞ 
 Jupyter+BigQueryͰσʔλ෼ੳج൫Λ࡞Γ࢝Ί͕ͨ

Slide 3

Slide 3 text


 Pythonॳ৺ऀ͕ 
 ͦΖͦΖݶքͳͷͰ 
 ॿ͚͍ͯͩ͘͞ 
 Jupyter+BigQueryͰσʔλ෼ੳج൫Λ࡞Γ࢝Ί͕ͨ

Slide 4

Slide 4 text


 ɹ@yuzutas0 ɹPythonॳ৺ऀ ɹ- ࢓ࣄ͸SREͱ͔ 
 ɹ- ୲౰γεςϜͷར༻ݴޠ
 ɹɹJava, Node.js, Ruby, Golang, Objective-C

Slide 5

Slide 5 text

ɹ؀ڥߏங͸ແ೉ʹΫϦΞ

Slide 6

Slide 6 text

ɹ“Hello World” Ͱ·͔͞ͷΤϥʔʂ

Slide 7

Slide 7 text

ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ͜Ε ɹίϩϯ͕͍ΔΒ͍͠

Slide 8

Slide 8 text

ͱ͍͏ঢ়ଶ͔Βελʔτ

Slide 9

Slide 9 text


 Pythonॳ৺ऀ͕ 
 ͦΖͦΖݶքͳͷͰ 
 ॿ͚͍ͯͩ͘͞ 
 Jupyter+BigQueryͰσʔλ෼ੳج൫Λ࡞Γ࢝Ί͕ͨ

Slide 10

Slide 10 text

ɹɹ1. ࢪࡦ෼ੳ → Build/Measure/Learn ɹɹ2. ఆৗతͳKPIϞχλϦϯά ɹɹ3. ػցֶशͷσʔληοτ४උ ɹΈΜͳσʔλ࢖͍͍ͨΑͶ

Slide 11

Slide 11 text

ɹΈΜͳ͕σʔλΛಠࣗʹ࢖ͬͨ 
 ݩσʔλ 
 ऩू/Ճ޻ 
 දࣔ/෼ੳ 
 ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺA 
 ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺB 
 ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺC ϩάA DB ϩάB Excel Redash Tableau

Slide 12

Slide 12 text

ɹτϥϒϧଟൃ - πʔϧ͝ͱʹച্ͷ਺஋͕ҧ͏ʂ 
 ݩσʔλ 
 ऩू/Ճ޻ 
 දࣔ/෼ੳ 
 ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺA 
 ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺB 
 ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺC ϩάA DB ϩάB Excel Redash Tableau

Slide 13

Slide 13 text

ɹՃ޻ϩδοΫͷผ؅ཧ͕໰୊ 
 ݩσʔλ 
 ऩू/Ճ޻ 
 දࣔ/෼ੳ 
 ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺA 
 ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺB 
 ɹɹɹɹɹɹɹɹɹɹɹɹɹ෦ॺC ϩάA DB ϩάB Excel Redash Tableau

Slide 14

Slide 14 text

ɹͳͷͰBigQueryʹҰݩԽ 
 ݩσʔλ 
 ऩू/Ճ޻ 
 දࣔ/෼ੳ 
 ɹɹɹɹɹɹɹ෦ॺA 
 ɹɹɹɹɹɹɹ෦ॺB 
 ɹɹɹɹɹɹɹ෦ॺC ϩάA DB ϩάB Excel Redash Tableau BigQuery

Slide 15

Slide 15 text

ɹ֤෦ॺͷಘҙͳ΍Γํɾπʔϧ͸ม͑ͳ͍ 
 ݩσʔλ 
 ऩू/Ճ޻ 
 දࣔ/෼ੳ 
 ɹɹɹɹɹɹɹ෦ॺA 
 ɹɹɹɹɹɹɹ෦ॺB 
 ɹɹɹɹɹɹɹ෦ॺC ϩάA DB ϩάB Excel Redash Tableau BigQuery

Slide 16

Slide 16 text

ɹॲཧεΫϦϓτͱͯ͠PythonΛ࠾୒ 
 Jupyter Notebook ಈ࡞֬ೝ͠΍͍͢
 ه࿥/࠶ݱ͠΍͍͢ 
 Pandas σʔλՃ޻͠΍͍͢
 JupyterͰ֬ೝ͠΍͍͢

Slide 17

Slide 17 text


 Pythonॳ৺ऀ͕ 
 ͦΖͦΖݶքͳͷͰ 
 ॿ͚͍ͯͩ͘͞ 
 Jupyter+BigQueryͰσʔλ෼ੳج൫Λ࡞Γ࢝Ί͕ͨ

Slide 18

Slide 18 text

Ϟϊ͸ಈ͍͍ͯΔ ɹ౒ྗͷ݁থ

Slide 19

Slide 19 text


 
 .envʹΑΔ؀ڥม਺ͷಡΈࠐΈ → ςετ؀ڥΛ෼཭ ɹ౒ྗͷ݁থ

Slide 20

Slide 20 text

unittest ͰطଘExcelγʔτͷܭࢉ݁Ռͱಉ͡ʹͳΔ͜ͱΛࣗಈݕূ ɹ౒ྗͷ݁থ

Slide 21

Slide 21 text

Python3.4ʙͷEnumΛ׆༻
 ˠ DictionaryܕͰ஋Λ؅ཧ ɹ౒ྗͷ݁থ

Slide 22

Slide 22 text


 EnumͷࣙॻσʔλΛ
 ࢖͍΍͘͢͢ΔϝιουΛ
 جఈΫϥεʹू໿ ɹ౒ྗͷ݁থ

Slide 23

Slide 23 text

දࣔΫϥεͱModelΫϥεͷI/FΛ҆ఆͤ͞ΔͨΊʹ
 Python3.5ʙͷTypeHintsΛ׆༻ ɹ౒ྗͷ݁থ

Slide 24

Slide 24 text

ച্ͳͲͷࢦඪ͸
 BQ࿈ܞʹΑΔ
 Immutableͳ
 Ϟσϧ૚ʹఆٛ ɹ౒ྗͷ݁থ

Slide 25

Slide 25 text

BQ༻ΫΤϦ͸Python3.6ʙͷf-stringsΛ׆༻
 ϝιου੾Γग़͠ → Ҿ͖౉͠Ͱม਺είʔϓ੍ޚ ɹ౒ྗͷ݁থ

Slide 26

Slide 26 text

ɹ͜ͷ΁Μʢʹฉ͘ͷ͕ૣͦ͏ʣ 
 ಺෦࢓༷Λ೺Ѳɺ
 ύϑΥʔϚϯεΛ࠷దԽͰ͖Δ
 ʢDocsɾॻ੶ɾίʔυΛಡΉϑΣʔζʣ 
 ֎෦࢓༷Λ೺ѲɺอकੑΛ޲্Ͱ͖Δ
 ʢଞਓͷίʔυΛಡΉˍॻ͖௚͢ϑΣʔζʣ ɹݴޠͷֶशεςʔδͱͯ͠͸ 
 ػೳཁ݅ΛຬͨͤΔ
 ʢͻͨ͢Βॻ͘ˍάάΔϑΣʔζʣ ؀ڥߏங Hello World ͬ͘͟Γ
 σόοά ෼཭ɾ݁߹ ϕλʔͳॻ͖ํ ศརͳϥΠϒϥϦ ϕϯνϚʔΫˍ
 νϡʔχϯά ಺෦मਖ਼ ͖ͪΜͱ
 σόοά

Slide 27

Slide 27 text

εϥεϥΘ͔Βͳ͍Python ɹཁ͢Δʹ

Slide 28

Slide 28 text


 1. ͨͿΜ໊લۭؒܥ 2. JavaͩͱͰ͖ΔͷͰPython΋Ͱ͖ͯ΄͍͠ܥ 3. IntelliJʢPythonϓϥάΠϯಋೖࡁΈʣܥ 4. ςετίʔυܥ
 ɹಈ࡞͸͢Δ͚Ͳ௚͍ͨ͠Ϧετ

Slide 29

Slide 29 text

ϥΠτχϯάྻڍ͍ͯ͘͠ͷͰ ʮ͜͏͢Ε͹ղܾ͢ΔͷͰ͸ʁʯ
 ʮ͜͏͍͏࣭໰ͷ࢓ํΛͯ͘͠Εʯ
 ͳͲͳͲɺޙͰڭ͍͑ͯͩ͘͞

Slide 30

Slide 30 text


 __init__.py Ͱ import ͠·͘Δ࢓༷͕͏͍͟ɻ
 ͳͯ͘΋ಈ͘ՕॴͱɺඞਢͷՕॴ͕͋Δʁ
 ɹ1. ͨͿΜ໊લۭؒܥ

Slide 31

Slide 31 text


 ผϞδϡʔϧͷఆ਺Λ࢖͏ͱ͖ʹɺ
 Πϯϙʔτจ্͕ख͍͘͘έʔεͱ
 ͦ͏Ͱͳ͍έʔε͕͋Δ ɹ1. ͨͿΜ໊લۭؒܥ

Slide 32

Slide 32 text

Ϋϥεͷ getter/setter Λলུ͍ͨ͠
 ʢ@Lombok.DataతͳϥΠϒϥϦ͕ཉ͍͠ʣ ɹ2. JavaͩͱͰ͖ΔͷͰPython΋Ͱ͖ͯ΄͍͠ܥ

Slide 33

Slide 33 text

__init__() ʹશϑΟʔϧυΛ٧ΊΔॲཧΛॻ͘ͷ͕खؒ
 ʢ@AllArgsConstructerతͳϥΠϒϥϦ͕ཉ͍͠ʣ ɹ2. JavaͩͱͰ͖ΔͷͰPython΋Ͱ͖ͯ΄͍͠ܥ

Slide 34

Slide 34 text

pandasͷdataframe['column']Λ
 PythonΦϒδΣΫτͷ column ϓϩύςΟʹίϐʔ͍ͨ͠
 ʢModelMapper͕ཉ͍͠ʣ ɹ2. JavaͩͱͰ͖ΔͷͰPython΋Ͱ͖ͯ΄͍͠ܥ

Slide 35

Slide 35 text

EnumͷvalueΛdictionaryܕͰ͍࣋ͬͯΔ͕ɺ
 ΋ͬͱָʹ஋Λऔಘ͠΍͍ͨ͘͢͠
 ʢશEnumΛϧʔϓͤͯ֘͞౰͢Δ஋Λऔಘ͢ΔϝιουΛॻ͍͍ͯΔ͕ʣ ɹ2. JavaͩͱͰ͖ΔͷͰPython΋Ͱ͖ͯ΄͍͠ܥ

Slide 36

Slide 36 text

IntelliJͰͷΠϯϙʔτ͕ઈରύεʹͳΔ͚Ͳɺ
 ࣮ߦ࣌ʹղܾͰ͖ͳ͍ͷͰɺ૬ରύεʹ͍ͨ͠ ɹ3. IntelliJʢPythonϓϥάΠϯಋೖࡁΈʣܥ

Slide 37

Slide 37 text

τοϓϨϕϧϞδϡʔϧͷΠϯϙʔτจΛ
 import .xxx.yyy.zzz Ͱ͸ͳ͘ import xxx.yyy.zzz ͱهड़ɻ
 IDEͩͱSyntaxErrorʹͳΔ͕࣮ߦ͸௨Δɻ
 ٯʹIDEʹ߹Θͤͯʮ.ʯͰ࢝ΊΔͱ͚͜Δɻ͜Ε΋໊લۭؒʁ ɹ3. IntelliJʢPythonϓϥάΠϯಋೖࡁΈʣܥ

Slide 38

Slide 38 text

IntelliJͷRefactoringͰΫϥε໊Λม͑ͨͱ͖ʹ
 ϑΝΠϧ໊͕ࣗಈͰ࿈ಈͯ͠มΘͬͯ͘Εͳ͍໰୊ɻ
 ٯ΋વΓɻ஍ຯʹ1൪ਏ͍ɻ ɹ3. IntelliJʢPythonϓϥάΠϯಋೖࡁΈʣܥ

Slide 39

Slide 39 text

testσΟϨΫτϦҎԼͷશεΫϦϓτΛҰׅͰ࣮ߦ͍ͨ͠ɻ
 ΦϓγϣϯΛ͚ͭͯ΋σΟϨΫτϦ͕ωετ͢Δͱࣦഊͯ͠͠·͏
 ͳͷͰݱࡏ͸֤σΟϨΫτϦΛݸผͰࢦఆ͍ͯ͠Δɻ
 ʢ֦ுੑ͕ͳ͍ʣ ɹ4. ςετίʔυܥ

Slide 40

Slide 40 text

ʢ΋͸΍͜ΕPythonͷ࣭໰Ͱ͸ͳ͍͚Ͳʣ
 Excelͷग़ྗ಺༰Λςετ͢Δͱ͖ɺϑΝΠϧ͕ग़Δͱअຐɻ
 ϞοΫΛ࢖͏ʁ or ࣮ߦޙʹϑΝΠϧΛຖճ࡟আ͢Δʁ
 Ͳ͕͍͍ͬͪͰ͔͢Ͷʔʁ ɹ4. ςετίʔυܥ

Slide 41

Slide 41 text


 Pythonॳ৺ऀ͕ 
 ͦΖͦΖݶքͳͷͰ 
 ॿ͚͍ͯͩ͘͞ 
 Jupyter+BigQueryͰσʔλ෼ੳج൫Λ࡞Γ࢝Ί͕ͨ

Slide 42

Slide 42 text

ॿ͚͍ͯͩ͘͞

Slide 43

Slide 43 text

Q&AαʔϏεͰ
 ฉ͚͹ྑ͔ͬͨʢʁʣ ɹ௥هɿձ৔ʹདྷͯؾ෇͍ͨ͜ͱ

Slide 44

Slide 44 text

ͨͱ͑͹ ɹ௥هɿձ৔ʹདྷͯؾ෇͍ͨ͜ͱ

Slide 45

Slide 45 text

teratail ɹ௥هɿձ৔ʹདྷͯؾ෇͍ͨ͜ͱ

Slide 46

Slide 46 text

͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠
 presented by @yuzutas0
 https://www.pexels.com/photo/reptile-snake-snape-36448/