Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

Π’ΡŠΡ€ΡΠ΅ΠΉΠΊΠΈ R ΠΈΠ»ΠΈ Python Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Ρ‰Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ статии ΠΈ ΠΊΠΈΠ»ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈ дискусии Π½Π° Ρ‚Π΅ΠΌΠ° ΠΊΠΎΠΉ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡŠΡ€, ΠΏΠΎ-Π±ΡŠΡ€Π· ΠΈ ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π΅Π½ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ. Но Π·Π° съТалСниС всички Ρ‚Π΅Π·ΠΈ статии ΠΈ споровС Π½Π΅ са особСно ΠΏΠΎΠ»Π΅Π·Π½ΠΈ.

Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

Π¦Π΅Π»Ρ‚Π° Π½Π° Ρ‚Π°Π·ΠΈ статия Π΅ Π΄Π° сравни основнитС Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ Π² Π½Π°ΠΉ-популярнитС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π½Π° Π΄Π²Π°Ρ‚Π° Π΅Π·ΠΈΠΊΠ°. И ΠΏΠΎΠΌΠΎΠ³Π½Π΅Ρ‚Π΅ Π½Π° Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ Π±ΡŠΡ€Π·ΠΎ Π΄Π° овладСят Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ всС ΠΎΡ‰Π΅ Π½Π΅ знаят. Π—Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΈΡˆΠ°Ρ‚ Π½Π° Python, Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ Π² R ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° статията Ρ‰Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ синтаксиса Π½Π° Π½Π°ΠΉ-популярнитС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π² R. Π’ΠΎΠ²Π° са ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° tidyverseΠ° ΡΡŠΡ‰ΠΎ ΠΈ ΠΎΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°Ρ‚Π° data.table. И сравнСтС синтаксиса ΠΈΠΌ с pandas, Π½Π°ΠΉ-популярният ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ Π² Python.

Π©Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ ΡΡ‚ΡŠΠΏΠΊΠ° ΠΏΠΎ ΡΡ‚ΡŠΠΏΠΊΠ° ΠΏΡ€Π΅Π· цСлия ΠΏΡŠΡ‚ Π½Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ Π΄ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Python ΠΈ R.

Π‘ΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅

Π’Π°Π·ΠΈ статия ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΌΠ°ΠΌΠ΅Π½ лист, Π°ΠΊΠΎ стС Π·Π°Π±Ρ€Π°Π²ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈΡ‚Π΅ някаква опСрация ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½ΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ.

Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

  1. Основни Ρ€Π°Π·Π»ΠΈΠΊΠΈ Π² синтаксиса ΠΌΠ΅ΠΆΠ΄Ρƒ R ΠΈ Python
    1.1. Π”ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°
    1.2. Π’ΡŠΠ·Π»Π°Π³Π°Π½Π΅
    1.3. Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ
    1.4. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΈ ООП
    1.5. Π’Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈ
    1.6. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ
  2. Няколко Π΄ΡƒΠΌΠΈ Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅
    2.1. тидивСрс
    2.2. Ρ‚Π°Π±Π»ΠΈΡ†Π° с Π΄Π°Π½Π½ΠΈ
    2.3. ΠΏΠ°Π½Π΄ΠΈ
  3. Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ
  4. Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ
  5. БъздаванС Π½Π° ΠΊΠ°Π΄Ρ€ΠΈ с Π΄Π°Π½Π½ΠΈ
  6. Π˜Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅
  7. Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅
  8. Π“Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅
  9. Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ обСдиняванС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ (UNION)
  10. Π₯ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ (JOIN)
  11. Основни ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ изчисляСми ΠΊΠΎΠ»ΠΎΠ½ΠΈ
  12. Π’Π°Π±Π»ΠΈΡ†Π° Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ Π² R ΠΈ Python
  13. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  14. ΠšΡ€Π°Ρ‚ΠΊΠ° Π°Π½ΠΊΠ΅Ρ‚Π° Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅

Ако сС интСрСсуватС ΠΎΡ‚ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ моя Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌΠ° ΠΈ YouTube ΠΊΠ°Π½Π°Π»ΠΈ. По-голямата част ΠΎΡ‚ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΅ посвСтСно Π½Π° Π΅Π·ΠΈΠΊΠ° R.

Основни Ρ€Π°Π·Π»ΠΈΠΊΠΈ Π² синтаксиса ΠΌΠ΅ΠΆΠ΄Ρƒ R ΠΈ Python

Π—Π° Π΄Π° Π²ΠΈ улСсня ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅Ρ‚ΠΎ ΠΎΡ‚ Python към R ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, Ρ‰Π΅ Π΄Π°ΠΌ няколко основни ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° ΠΎΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

Π”ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ бъдС Π·Π°Ρ€Π΅Π΄Π΅Π½ Π² R, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡƒΠΊΠ°Π·Π²Π°Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ чСсто срСщано Π² R, Π½ΠΎ Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ. НС Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π΄Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Ρ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Π΅Π΄Π½Π° ΠΎΡ‚ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ във вашия ΠΊΠΎΠ΄, Π° просто Π³ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ°ΠΉΡ‚Π΅, ΠΊΠ°Ρ‚ΠΎ посочитС ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° функцията. РаздСлитСлят ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π² R Π΅ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅. package_name::function_name().

Π’ Python, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², сС счита Π·Π° класичСско ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ Ρ‡Ρ€Π΅Π· ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ посочванС Π½Π° ΠΈΠΌΠ΅Ρ‚ΠΎ ΠΌΡƒ. ΠšΠΎΠ³Π°Ρ‚ΠΎ сС ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΌΡƒ сС Π΄Π°Π²Π° ΡΡŠΠΊΡ€Π°Ρ‚Π΅Π½ΠΎ ΠΈΠΌΠ΅, Π½Π°ΠΏΡ€. pandas ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° псСвдоним pd. Π”ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ функция Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Ρ‡Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΠ° package_name.function_name().

Π’ΡŠΠ·Π»Π°Π³Π°Π½Π΅

Π’ R Π΅ ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° стрСлка Π·Π° присвояванС Π½Π° стойност Π½Π° ΠΎΠ±Π΅ΠΊΡ‚. obj_name <- value, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ Π·Π½Π°ΠΊ Π·Π° равСнство, Сдиничният Π·Π½Π°ΠΊ Π·Π° равСнство Π² R сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€Π΅Π΄ΠΈΠΌΠ½ΠΎ Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° стойности към Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° функцията.

Π’ Python присвояванСто сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ с Π΅Π΄ΠΈΠ½ Π·Π½Π°ΠΊ Π·Π° равСнство obj_name = value.

Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ

Π’ΡƒΠΊ ΡΡŠΡ‰ΠΎ ΠΈΠΌΠ° доста ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΈ Ρ€Π°Π·Π»ΠΈΠΊΠΈ. Π’ R индСксиранСто Π·Π°ΠΏΠΎΡ‡Π²Π° ΠΎΡ‚ Π΅Π΄Π½ΠΎ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π° всички посочСни Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π² рСзултантния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½,

Π’ Python индСксиранСто Π·Π°ΠΏΠΎΡ‡Π²Π° ΠΎΡ‚ Π½ΡƒΠ»Π° ΠΈ избраният Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π° послСдния Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚, посочСн Π² индСкса. Π’Π°ΠΊΠ° Ρ‡Π΅ Π΄ΠΈΠ·Π°ΠΉΠ½ x[i:j] Π² Python няма Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° j.

Има ΠΈ Ρ€Π°Π·Π»ΠΈΠΊΠΈ Π² ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π½ΠΎΡ‚ΠΎ индСксиранС, Π² R нотация x[-1] Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ всички Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π° с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° послСдния. Π’ Python ΠΏΠΎΠ΄ΠΎΠ±Π½Π° нотация Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ само послСдния Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚.

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΈ ООП

R ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° OOP ΠΏΠΎ свой собствСн Π½Π°Ρ‡ΠΈΠ½, писах Π·Π° Ρ‚ΠΎΠ²Π° Π² статията β€žΠžΠžΠŸ Π½Π° Π΅Π·ΠΈΠΊΠ° R (част 1): S3 ΠΊΠ»Π°ΡΠΎΠ²Π΅β€œ. ΠšΠ°Ρ‚ΠΎ цяло R Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ Π΅Π·ΠΈΠΊ ΠΈ всичко Π² Π½Π΅Π³ΠΎ Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΎ Π²ΡŠΡ€Ρ…Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π•Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π½Π° Excel, ΠΎΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° tydiverse Ρ‰Π΅ бъдС ΠΏΠΎ-лСсно ΠΎΡ‚ pandas. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΌΠΎΠ΅ субСктивно ΠΌΠ½Π΅Π½ΠΈΠ΅.

Накратко, ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ Π² R нямат ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ (Π°ΠΊΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° S3 класовС, Π½ΠΎ ΠΈΠΌΠ° Π΄Ρ€ΡƒΠ³ΠΈ ООП Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-рядко срСщани). Има само ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π³ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π² зависимост ΠΎΡ‚ класа Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π°.

Π’Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈ

МоТС Π±ΠΈ Ρ‚ΠΎΠ²Π° Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° pandas Няма Π΄Π° Π΅ съвсСм ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Π½ΠΎ Ρ‰Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌ Π΄Π° обясня смисъла.

Π—Π° Π΄Π° Π½Π΅ спСстяватС ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ изчислСния ΠΈ Π΄Π° Π½Π΅ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ Π½Π΅Π½ΡƒΠΆΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π½Π°Ρ‚Π° срСда, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π΅Π΄ΠΈΠ½ Π²ΠΈΠ΄ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€. Π’Π΅Π·ΠΈ. ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ изчислСниС ΠΎΡ‚ Π΅Π΄Π½Π° функция към слСдващата ΠΈ Π½Π΅ записвайтС ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ.

НСка Π²Π·Π΅ΠΌΠ΅ΠΌ слСдния ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΊΠΎΠ΄, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ изчислСния Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ:

temp_object <- func1()
temp_object2 <- func2(temp_object )
obj <- func3(temp_object2 )

Π˜Π·Π²ΡŠΡ€ΡˆΠΈΡ…ΠΌΠ΅ послСдоватСлно 3 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ всяка бСшС записан Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΎΠ±Π΅ΠΊΡ‚. Но Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π½ΠΈΠ΅ Π½Π΅ сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ.

Или ΠΎΡ‰Π΅ ΠΏΠΎ-лошо, Π½ΠΎ ΠΏΠΎ-ΠΏΠΎΠ·Π½Π°Ρ‚ΠΎ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Excel.

obj  <- func3(func2(func1()))

Π’ Ρ‚ΠΎΠ·ΠΈ случай Π½Π΅ Π·Π°ΠΏΠ°Π·ΠΈΡ…ΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚ изчислСнията, Π½ΠΎ Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄ с Π²Π»ΠΎΠΆΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Π©Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ няколко ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ Π² R ΠΈ Ρ‚Π΅ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π½Π°Ρ‡ΠΈΠ½ΠΈ.

Π’Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° tidyverse Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° %>%.

obj <- func1() %>% 
            func2() %>%
            func3()

Π’Π°ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° func1() ΠΈ Π³ΠΎ ΠΏΡ€Π΅Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π½Π° func2(), Ρ‚ΠΎΠ³Π°Π²Π° ΠΏΡ€Π΅Π΄Π°Π²Π°ΠΌΠ΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ Ρ‚ΠΎΠ²Π° изчислСниС ΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ func3(). И накрая записвамС всички ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ΠΈ изчислСния Π² ΠΎΠ±Π΅ΠΊΡ‚Π° obj <-.

Всичко ΠΏΠΎ-Π³ΠΎΡ€Π΅ Π΅ ΠΈΠ»ΡŽΡΡ‚Ρ€ΠΈΡ€Π°Π½ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ ΠΎΡ‚ Π΄ΡƒΠΌΠΈΡ‚Π΅ ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ ΠΌΠ΅ΠΌ:
Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

Π’ data.table Π²Π΅Ρ€ΠΈΠ³ΠΈΡ‚Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π°Ρ‡ΠΈΠ½.

newDT <- DT[where, select|update|do, by][where, select|update|do, by][where, select|update|do, by]

Π’ΡŠΠ² всяка ΠΎΡ‚ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈΡ‚Π΅ скоби ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° опСрация.

Π’ pandas Ρ‚Π°ΠΊΠΈΠ²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ са Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠ°.

obj = df.fun1().fun2().fun3()

Π’Π΅Π·ΠΈ. Π²Π·Π΅ΠΌΠ°ΠΌΠ΅ Π½Π°ΡˆΠ°Ρ‚Π° маса df ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° нСйния ΠΌΠ΅Ρ‚ΠΎΠ΄ fun1(), слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°ΠΌΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° към получСния Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ fun2()слСд fun3(). ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡΡ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ сС записва Π² ΠΎΠ±Π΅ΠΊΡ‚ OBJ .

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ‚Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² R ΠΈ Python са ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ, Π½ΠΎ ΠΈΠΌΠ°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΈΠΌΠ΅Π½Π°.

описаниС
ИмС на R
ИмС в Python/pandas

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°
data.frame, data.table, tibble
DataFrame

Π•Π΄Π½ΠΎΠΌΠ΅Ρ€Π΅Π½ списък ΠΎΡ‚ стойности
Π²Π΅ΠΊΡ‚ΠΎΡ€
БСрия Π² pandas ΠΈΠ»ΠΈ списък Π² чист Python

ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½Π° Π½Π΅Ρ‚Π°Π±Π»ΠΈΡ‡Π½Π° структура
списък
Ρ€Π΅Ρ‡Π½ΠΈΠΊ (dict)

По-Π΄ΠΎΠ»Ρƒ Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ някои Π΄Ρ€ΡƒΠ³ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ€Π°Π·Π»ΠΈΠΊΠΈ Π² синтаксиса.

Няколко Π΄ΡƒΠΌΠΈ Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅

ΠŸΡŠΡ€Π²ΠΎ, Ρ‰Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° ΠΌΠ°Π»ΠΊΠΎ Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, с ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Ρ‚Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ‚Π°Π·ΠΈ статия.

тидивСрс

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт: tidyverse.org
Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° tidyverse написано ΠΎΡ‚ Π₯Π΅Π΄Π»ΠΈ Уикъм, ΡΡ‚Π°Ρ€ΡˆΠΈ Π½Π°ΡƒΡ‡Π΅Π½ ΡΡŠΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ Π² RStudio. tidyverse сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ впСчатляващ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ опростяват ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ, 5 ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ 10 изтСгляния ΠΎΡ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π½Π° CRAN.

Π―Π΄Ρ€ΠΎΡ‚ΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ слСднитС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ: ggplot2, dplyr, tidyr, readr, purrr, tibble, stringr, forcats. ВсСки ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π΅ насочСн към Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. НапримСр dplyr създадСн Π·Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, tidyr Π·Π° ΠΏΡ€ΠΈΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² чист Π²ΠΈΠ΄, stringr опростява Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Π½ΠΈΠ·ΠΎΠ²Π΅ ΠΈ ggplot2 Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π°ΠΉ-популярнитС инструмСнти Π·Π° визуализация Π½Π° Π΄Π°Π½Π½ΠΈ.

ΠŸΡ€Π΅Π΄ΠΈΠΌΡΡ‚Π²ΠΎΡ‚ΠΎ tidyverse Π΅ простотата ΠΈ лСсният Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ синтаксис, ΠΊΠΎΠΉΡ‚ΠΎ Π² ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° заявки SQL.

Ρ‚Π°Π±Π»ΠΈΡ†Π° с Π΄Π°Π½Π½ΠΈ

Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт: r-datatable.com

ΠΎΡ‚ data.table Π΅ ΠœΠ°Ρ‚ Π”ΠΎΡƒΠ» ΠΎΡ‚ H2O.ai.

ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° сС ΡΡŠΡΡ‚ΠΎΡ ΠΏΡ€Π΅Π· 2006 Π³.

Π‘ΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΡƒΠ΄ΠΎΠ±Π΅Π½, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π² tidyverse ΠΈ напомня ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π½Π° класичСскитС ΠΊΠ°Π΄Ρ€ΠΈ с Π΄Π°Π½Π½ΠΈ Π² R, Π½ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½Π° функционалност.

Всички ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΠΈ с Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π² Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ са описани Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби ΠΈ Π°ΠΊΠΎ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Ρ‚Π΅ синтаксиса data.table Π² SQL ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ: data.table[ WHERE, SELECT, GROUP BY ]

Π‘ΠΈΠ»Π°Ρ‚Π° Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ Π΅ скоростта Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ количСства Π΄Π°Π½Π½ΠΈ.

ΠΏΠ°Π½Π΄ΠΈ

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт: pandas.pydata.org Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

Π˜ΠΌΠ΅Ρ‚ΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΈΠ΄Π²Π° ΠΎΡ‚ икономСтричния Ρ‚Π΅Ρ€ΠΌΠΈΠ½ β€žΠΏΠ°Π½Π΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈβ€œ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° описаниС Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΈ структурирани Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ информация.

ΠΎΡ‚ pandas Π΅ Π°ΠΌΠ΅Ρ€ΠΈΠΊΠ°Π½Π΅Ρ†ΡŠΡ‚ УСс Маккини.

ΠšΠΎΠ³Π°Ρ‚ΠΎ става Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ Π² Python, Ρ€Π°Π²Π΅Π½ pandas НС. Много ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΡ‚ високо Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚Π΅ всякакви ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΠΈ с Π΄Π°Π½Π½ΠΈ, ΠΎΡ‚ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ всякакви ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ Π΄ΠΎ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ.

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ

ΠŸΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, обсъТдани Π² Ρ‚Π°Π·ΠΈ статия, Π½Π΅ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² основнитС дистрибуции Π½Π° R ΠΈ Python. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΈΠΌΠ° ΠΌΠ°Π»ΠΊΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π°ΠΊΠΎ стС инсталирали дистрибуцията Π½Π° Anaconda, инсталирайтС Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ pandas Π½Π΅ сС изисква.

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π² R

Ако ΠΏΠΎΠ½Π΅ вСднъТ стС ΠΎΡ‚Π²ΠΎΡ€ΠΈΠ»ΠΈ срСдата Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° RStudio, вСроятно Π²Π΅Ρ‡Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Π΄Π° инсталиратС нСобходимия ΠΏΠ°ΠΊΠ΅Ρ‚ Π² R. Π—Π° Π΄Π° инсталиратС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ стандартната ΠΊΠΎΠΌΠ°Π½Π΄Π° install.packages() ΠΊΠ°Ρ‚ΠΎ Π³ΠΎ стартиратС Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² самия R.

# установка ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²
install.packages("vroom")
install.packages("readr")
install.packages("dplyr")
install.packages("data.table")

Π‘Π»Π΅Π΄ инсталиранСто Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ, Π·Π° ΠΊΠΎΠ΅Ρ‚ΠΎ Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° library().

# ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅
library(vroom)
library(readr)
library(dplyr)
library(data.table)

Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π² Python

Π’Π°ΠΊΠ° Ρ‡Π΅, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ инсталиран чист Python, Ρ‚ΠΎΠ³Π°Π²Π° pandas трябва Π΄Π° Π³ΠΎ инсталиратС Ρ€ΡŠΡ‡Π½ΠΎ. ΠžΡ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ Ρ€Π΅Π΄ ΠΈΠ»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Π² зависимост ΠΎΡ‚ Π²Π°ΡˆΠ°Ρ‚Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма ΠΈ Π²ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅ слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π°.

pip install pandas

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° сС Π²Ρ€ΡŠΡ‰Π°ΠΌΠ΅ към Python ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ инсталирания ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° import.

import pandas as pd

Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ

Π˜Π·Π²Π»ΠΈΡ‡Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π΅ Π΅Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡ‚Π΅ ΡΡ‚ΡŠΠΏΠΊΠΈ Π² Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° Π΄Π°Π½Π½ΠΈ. ΠšΠ°ΠΊΡ‚ΠΎ Python, Ρ‚Π°ΠΊΠ° ΠΈ R, Π°ΠΊΠΎ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅, Π²ΠΈ прСдоставят ΡˆΠΈΡ€ΠΎΠΊΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ всякакви ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ: Π»ΠΎΠΊΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, уСбсайтовС, всякакви Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.

Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

Π’ цялата статия Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ няколко Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ:

  1. Π”Π²Π΅ изтСгляния ΠΎΡ‚ Google Analytics.
  2. Набор ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΡŠΡ‚Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π’ΠΈΡ‚Π°Π½ΠΈΠΊ.

Всички Π΄Π°Π½Π½ΠΈ са Π½Π° ΠΌΠ΅Π½ GitHub ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° csv ΠΈ tsv Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. ΠžΡ‚ΠΊΡŠΠ΄Π΅ Ρ‰Π΅ Π³ΠΈ поискамС?

Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² R: tidyverse, vroom, readr

Π—Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° tidyverse Има Π΄Π²Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°: vroom, readr. vroom ΠΏΠΎ-ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ, Π½ΠΎ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚.

Π¦ΠΈΡ‚Π°Ρ‚ ΠΎΡ‚ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π° докумСнтация vroom.

vroom срСщу Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»
Какво ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° освобоТдаванСто Π½Π° vroom ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° Π·Π° readr? ЗасСга ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° оставим Π΄Π²Π°Ρ‚Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ, Π½ΠΎ вСроятно Ρ‰Π΅ ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅. Π•Π΄ΠΈΠ½ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ Π½Π° ΠΌΡŠΡ€Π·Π΅Π»ΠΈΠ²ΠΎΡ‚ΠΎ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° vroom Π΅, Ρ‡Π΅ някои ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΠΊΠ»Π°Π΄Π²Π°Π½ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΊΠ°ΠΊ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° Π³ΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ изисква извСстно обмислянС.

vroom срСщу readr
Какво ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° освобоТдаванС? vroom Π·Π° readr? Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ Π΄Π²Π°Ρ‚Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΠΎΠΎΡ‚Π΄Π΅Π»Π½ΠΎ, Π½ΠΎ вСроятно Ρ‰Π΅ Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°ΠΌΠ΅ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅. Π•Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ Π½Π° ΠΌΡŠΡ€Π·Π΅Π»ΠΈΠ²ΠΎΡ‚ΠΎ Ρ‡Π΅Ρ‚Π΅Π½Π΅ vroom Π΅, Ρ‡Π΅ някои ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΠΊΠ»Π°Π΄Π²Π°Π½ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ трябва Π΄Π° помислитС ΠΊΠ°ΠΊ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅.

Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΈ Π΄Π²Π°Ρ‚Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ:

Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² R: vroom ΠΏΠ°ΠΊΠ΅Ρ‚

# install.packages("vroom")
library(vroom)

# Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…
## vroom
ga_nov  <- vroom("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_nowember.csv")
ga_dec  <- vroom("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_december.csv")
titanic <- vroom("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/titanic.csv")

Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² R: readr

# install.packages("readr")
library(readr)

# Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…
## readr
ga_nov  <- read_tsv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_nowember.csv")
ga_dec  <- read_tsv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_december.csv")
titanic <- read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/titanic.csv")

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π° vroom, нСзависимо ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ csv / tsv, Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° ΠΎΡ‚ функцията със ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ vroom(), Π² ΠΎΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°Ρ‚Π° readr ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° функция Π·Π° всСки Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ read_tsv() ΠΈ read_csv().

Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² R: data.table

Π’ data.table ΠΈΠΌΠ° функция Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ fread().

Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ R: data.table

# install.packages("data.table")
library(data.table)

## data.table
ga_nov  <- fread("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_nowember.csv")
ga_dec  <- fread("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/ga_december.csv")
titanic <- fread("https://raw.githubusercontent.com/selesnow/publications/master/data_example/r_python_data/titanic.csv")

Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² Python: pandas

Ако сравним с R ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Ρ‚ΠΎΠ³Π°Π²Π° Π² Ρ‚ΠΎΠ·ΠΈ случай ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π΅ Π½Π°ΠΉ-близък Π΄ΠΎ pandas Ρ‰Π΅ readr, Π·Π°Ρ‰ΠΎΡ‚ΠΎ pandas ΠΌΠΎΠΆΠ΅ Π΄Π° изисква Π΄Π°Π½Π½ΠΈ ΠΎΡ‚Π²ΡΡΠΊΡŠΠ΄Π΅ ΠΈ Π² Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠΌΠ° цяло сСмСйство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ read_*().

  • read_csv()
  • read_excel()
  • read_sql()
  • read_json()
  • read_html()

И ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈ Π΄Π° Ρ‡Π΅Ρ‚Π°Ρ‚ Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ. Но Π·Π° Π½Π°ΡˆΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΈ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ read_table() ΠΈΠ»ΠΈ read_csv() ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ сСптСмври Π·Π° Π΄Π° посочитС раздСлитСля Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ.

Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² Python: pandas

import pandas as pd

ga_nov  = pd.read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/russian_text_in_r/ga_nowember.csv", sep = "t")
ga_dec  = pd.read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/russian_text_in_r/ga_december.csv", sep = "t")
titanic = pd.read_csv("https://raw.githubusercontent.com/selesnow/publications/master/data_example/russian_text_in_r/titanic.csv")

БъздаванС Π½Π° ΠΊΠ°Π΄Ρ€ΠΈ с Π΄Π°Π½Π½ΠΈ

Π’Π°Π±Π»ΠΈΡ†Π° Ρ‚ΠΈΡ‚Π°Π½ΠΈΡ‡Π΅Π½, ΠΊΠΎΠΉΡ‚ΠΎ Π·Π°Ρ€Π΅Π΄ΠΈΡ…ΠΌΠ΅, ΠΈΠΌΠ° ΠΏΠΎΠ»Π΅ сСкс, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° ΠΏΠΎΠ»Π° Π½Π° ΠΏΡŠΡ‚Π½ΠΈΠΊΠ°.

Но Π·Π° ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π½ΠΎ прСдставянС Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΏΠΎ ΠΏΠΎΠ» Π½Π° ΠΏΡŠΡ‚Π½ΠΈΠΊΠ°, трябва Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ, Π° Π½Π΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΠΎΠ»Π°.

Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π°, Ρ‰Π΅ създадСм ΠΌΠ°Π»ΠΊΠ° дирСктория, Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π² която Ρ‰Π΅ ΠΈΠΌΠ° само 2 ΠΊΠΎΠ»ΠΎΠ½ΠΈ (ΠΊΠΎΠ΄ ΠΈ ΠΈΠΌΠ΅ Π½Π° ΠΏΠΎΠ»Π°) ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ 2 Ρ€Π΅Π΄Π°.

БъздаванС Π½Π° Ρ€Π°ΠΌΠΊΠ° с Π΄Π°Π½Π½ΠΈ Π² R: tidyverse, dplyr

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° ΠΊΠΎΠ΄ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ създавамС ΠΆΠ΅Π»Π°Π½Π°Ρ‚Π° Ρ€Π°ΠΌΠΊΠ° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° функцията tibble() .

БъздаванС Π½Π° Ρ€Π°ΠΌΠΊΠ° с Π΄Π°Π½Π½ΠΈ Π² R: dplyr

## dplyr
### создаём справочник
gender <- tibble(id = c(1, 2),
                 gender = c("female", "male"))

БъздаванС Π½Π° Ρ€Π°ΠΌΠΊΠ° с Π΄Π°Π½Π½ΠΈ Π² R: data.table

БъздаванС Π½Π° Ρ€Π°ΠΌΠΊΠ° с Π΄Π°Π½Π½ΠΈ Π² R: data.table

## data.table
### создаём справочник
gender <- data.table(id = c(1, 2),
                    gender = c("female", "male"))

БъздаванС Π½Π° Ρ€Π°ΠΌΠΊΠ° с Π΄Π°Π½Π½ΠΈ Π² Python: pandas

Π’ pandas Π‘ΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°ΠΌΠΊΠΈ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π½Π° няколко Π΅Ρ‚Π°ΠΏΠ°, ΠΏΡŠΡ€Π²ΠΎ създавамС Ρ€Π΅Ρ‡Π½ΠΈΠΊ ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°ΠΌΠ΅ Ρ€Π΅Ρ‡Π½ΠΈΠΊΠ° Π² Ρ€Π°ΠΌΠΊΠ° с Π΄Π°Π½Π½ΠΈ.

БъздаванС Π½Π° Ρ€Π°ΠΌΠΊΠ° с Π΄Π°Π½Π½ΠΈ Π² Python: pandas

# создаём Π΄Π°Ρ‚Π° Ρ„Ρ€Π΅ΠΉΠΌ
gender_dict = {'id': [1, 2],
               'gender': ["female", "male"]}
# ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π² Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ
gender = pd.DataFrame.from_dict(gender_dict)

Π˜Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ

Π’Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, с ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ дСсСтки ΠΈΠ»ΠΈ Π΄ΠΎΡ€ΠΈ стотици ΠΊΠΎΠ»ΠΎΠ½ΠΈ с Π΄Π°Π½Π½ΠΈ. Но Π·Π° Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈΡ‚Π΅ Π°Π½Π°Π»ΠΈΠ·, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅ ΠΎΡ‚ всички ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² ΠΈΠ·Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°.

Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ Π΅Π΄Π½Π° ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈΡ‚Π΅ с Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ, Π΅ Π΄Π° я изчиститС ΠΎΡ‚ Π½Π΅Π½ΡƒΠΆΠ½Π° информация ΠΈ Π΄Π° освободитС ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, която Ρ‚Π°Π·ΠΈ информация Π·Π°Π΅ΠΌΠ°.

Π˜Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π² R: tidyverse, dplyr

синтаксис dplyr Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° заявки SQL, Π°ΠΊΠΎ стС Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ с Π½Π΅Π³ΠΎ, Π±ΡŠΡ€Π·ΠΎ Ρ‰Π΅ ΠΎΠ²Π»Π°Π΄Π΅Π΅Ρ‚Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚.

Π—Π° Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ функцията select().

По-Π΄ΠΎΠ»Ρƒ са Π΄Π°Π΄Π΅Π½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΊΠΎΠ΄, с ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΏΠΎ слСднитС Π½Π°Ρ‡ΠΈΠ½ΠΈ:

  • Π˜Π·Π±Ρ€ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ
  • ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ сС към ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ
  • По Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ всяко Π΄Ρ€ΡƒΠ³ΠΎ свойство Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ сС Π² ΠΊΠΎΠ»ΠΎΠ½Π°Ρ‚Π°

Π˜Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π² R: dplyr

# Π’Ρ‹Π±ΠΎΡ€ Π½ΡƒΠΆΠ½Ρ‹Ρ… столбцов
## dplyr
### Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎ названию столбцов
select(ga_nov, date, source, sessions)
### ΠΈΡΠΊΠ»ΡŽΡ‡ΡŒ ΠΏΠΎ названию столбцов
select(ga_nov, -medium, -bounces)
### Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎ рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ, стобцы ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° s
select(ga_nov, matches("s$"))
### Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ цСлочислСнныС столбцы
select_if(ga_nov, is.integer)

Π˜Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π² R: data.table

Π‘ΡŠΡ‰ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² data.table сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ, Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° статията прСдоставих описаниС Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби data.table.

DT[i,j,by]

КъдС:
i - ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ, Ρ‚.Π΅. Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ ΠΏΠΎ Ρ€Π΅Π΄ΠΎΠ²Π΅
j - ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅|update|do, Ρ‚.Π΅. ΠΈΠ·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ
ΠΏΠΎ - Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ

Π˜Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π² R: data.table

## data.table
### Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎ названию столбцов
ga_nov[ , .(date, source, sessions) ]
### ΠΈΡΠΊΠ»ΡŽΡ‡ΡŒ ΠΏΠΎ названию столбцов
ga_nov[ , .SD, .SDcols = ! names(ga_nov) %like% "medium|bounces" ]
### Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎ рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ
ga_nov[, .SD, .SDcols = patterns("s$")]

ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ² .SD позволява Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ всички ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΈ .SDcols Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅.

Π˜Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π² Python, pandas

Π—Π° Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΏΠΎ ΠΈΠΌΠ΅ Π² pandas Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΅ Π΄Π° прСдоставитС списък с Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Π½Π°. И Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΏΠΎ ΠΈΠΌΠ΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° рСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ, трябва Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ drop() ΠΈ filter(), ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ос=1, с ΠΊΠΎΠ΅Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π²Π°Ρ‚Π΅, Ρ‡Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, Π° Π½Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅.

Π—Π° Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π΅ ΠΏΠΎ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ функцията select_dtypes(), ΠΈ Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ include ΠΈΠ»ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° списък с Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‰ΠΈ Π½Π° ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅.

Π˜Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π² Python: pandas

# Π’Ρ‹Π±ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ ΠΏΠΎ названию
ga_nov[['date', 'source', 'sessions']]
# Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ названию
ga_nov.drop(['medium', 'bounces'], axis=1)
# Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎ рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ
ga_nov.filter(regex="s$", axis=1)
# Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ числовыС поля
ga_nov.select_dtypes(include=['number'])
# Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ тСкстовыС поля
ga_nov.select_dtypes(include=['object'])

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅

НапримСр ΠΈΠ·Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π΄Π°Π½Π½ΠΈ Π·Π° няколко Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π½ΠΎ трябва Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ само послСдния мСсСц. ΠžΡ‚Π½ΠΎΠ²ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ Ρ‰Π΅ забавят процСса Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Ρ‰Π΅ Π·Π°ΠΏΡƒΡˆΠ°Ρ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π°.

Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² R: tydyverse, dplyr

Π’ dplyr функцията сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ filter(). Π’ΠΎΠΉ ΠΏΡ€ΠΈΠ΅ΠΌΠ° Ρ€Π°ΠΌΠΊΠ° с Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ изброяватС условията Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅.

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ логичСски ΠΈΠ·Ρ€Π°Π·ΠΈ Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π² Ρ‚ΠΎΠ·ΠΈ случай посочСтС ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅ Π±Π΅Π· ΠΊΠ°Π²ΠΈΡ‡ΠΊΠΈ ΠΈ Π±Π΅Π· Π΄Π° Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€Π°Ρ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°.

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ мноТСство логичСски ΠΈΠ·Ρ€Π°Π·ΠΈ Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ слСднитС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ:

  • & ΠΈΠ»ΠΈ запСтая - логичСско И
  • | - логичСско Π˜Π›Π˜

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² R: dplyr

# Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ строк
## dplyr
### Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ строк ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ
filter(ga_nov, source == "google")
### Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ Π΄Π²ΡƒΠΌ условиям соСдинённым логичСским ΠΈ
filter(ga_nov, source == "google" & sessions >= 10)
### Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ Π΄Π²ΡƒΠΌ условиям соСдинённым логичСским ΠΈΠ»ΠΈ
filter(ga_nov, source == "google" | sessions >= 10)

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² R: data.table

ΠšΠ°ΠΊΡ‚ΠΎ Π²Π΅Ρ‡Π΅ писах ΠΏΠΎ-Π³ΠΎΡ€Π΅, Π² data.table ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π΅ ΠΎΠ³Ρ€Π°Π΄Π΅Π½ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби.

DT[i,j,by]

КъдС:
i - ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ, Ρ‚.Π΅. Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ ΠΏΠΎ Ρ€Π΅Π΄ΠΎΠ²Π΅
j - ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅|update|do, Ρ‚.Π΅. ΠΈΠ·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ
ΠΏΠΎ - Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ

ΠΡ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ i, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌΠ° ΠΏΡŠΡ€Π²Π° позиция Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби.

ΠšΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅ сС Π΄ΠΎΡΡ‚ΡŠΠΏΠ²Π°Ρ‚ Π² логичСски ΠΈΠ·Ρ€Π°Π·ΠΈ Π±Π΅Π· ΠΊΠ°Π²ΠΈΡ‡ΠΊΠΈ ΠΈ Π±Π΅Π· посочванС Π½Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°.

ЛогичСскитС ΠΈΠ·Ρ€Π°Π·ΠΈ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Π΅Π΄ΠΈΠ½ с Π΄Ρ€ΡƒΠ³ ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½, ΠΊΠ°ΠΊΡ‚ΠΎ Π² dplyr Ρ‡Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ & ΠΈ |.

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² R: data.table

## data.table
### Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ строк ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ
ga_nov[source == "google"]
### Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ Π΄Π²ΡƒΠΌ условиям соСдинённым логичСским ΠΈ
ga_nov[source == "google" & sessions >= 10]
### Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ Π΄Π²ΡƒΠΌ условиям соСдинённым логичСским ΠΈΠ»ΠΈ
ga_nov[source == "google" | sessions >= 10]

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π² Python: pandas

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ ΠΏΠΎ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² pandas ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π² data.table, ΠΈ сС ΠΏΡ€Π°Π²ΠΈ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби.

Π’ Ρ‚ΠΎΠ·ΠΈ случай Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ Π΄ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅ сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‡Ρ€Π΅Π· посочванС Π½Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° с Π΄Π°Π½Π½ΠΈ; Ρ‚ΠΎΠ³Π°Π²Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ»ΠΎΠ½Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ ΡΡŠΡ‰ΠΎ Π΄Π° бъдС посочСно Π² ΠΊΠ°Π²ΠΈΡ‡ΠΊΠΈ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ df['col_name']), ΠΈΠ»ΠΈ Π±Π΅Π· ΠΊΠ°Π²ΠΈΡ‡ΠΊΠΈ слСд Ρ‚ΠΎΡ‡ΠΊΠ°Ρ‚Π° (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ df.col_name).

Ако трябва Π΄Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Ρ‚Π΅ Ρ€Π°ΠΌΠΊΠ° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΠΏΠΎ няколко условия, всяко условиС трябва Π΄Π° бъдС поставСно Π² скоби. ЛогичСскитС условия са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си Ρ‡Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ & ΠΈ |.

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π² Python: pandas

# Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ строк Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
### Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ строк ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ
ga_nov[ ga_nov['source'] == "google" ]
### Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ Π΄Π²ΡƒΠΌ условиям соСдинённым логичСским ΠΈ
ga_nov[(ga_nov['source'] == "google") & (ga_nov['sessions'] >= 10)]
### Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ ΠΏΠΎ Π΄Π²ΡƒΠΌ условиям соСдинённым логичСским ΠΈΠ»ΠΈ
ga_nov[(ga_nov['source'] == "google") | (ga_nov['sessions'] >= 10)]

Π“Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ

Π•Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-чСсто ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° Π΄Π°Π½Π½ΠΈ Π΅ Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ.

Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

Π‘ΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π΅ Ρ€Π°Π·ΠΏΡ€ΡŠΡΠ½Π°Ρ‚ във всички ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅.

Π’ Ρ‚ΠΎΠ·ΠΈ случай Ρ‰Π΅ Π²Π·Π΅ΠΌΠ΅ΠΌ Ρ€Π°ΠΌΠΊΠ° с Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΈΡ‚Π°Π½ΠΈΡ‡Π΅Π½ΠΈ изчислСтС броя ΠΈ срСдната Ρ†Π΅Π½Π° Π½Π° Π±ΠΈΠ»Π΅Ρ‚ΠΈΡ‚Π΅ Π² зависимост ΠΎΡ‚ класа Π½Π° ΠΊΠ°Π±ΠΈΠ½Π°Ρ‚Π°.

Π“Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² R: tidyverse, dplyr

Π’ dplyr функцията сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ group_by(), ΠΈ Π·Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ summarise(). Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚, dplyr ΠΈΠΌΠ° цяло сСмСйство ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ summarise_*(), Π½ΠΎ Ρ†Π΅Π»Ρ‚Π° Π½Π° Ρ‚Π°Π·ΠΈ статия Π΅ Π΄Π° сравни основния синтаксис, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ няма Π΄Π° Π½Π°Π²Π»ΠΈΠ·Π°ΠΌΠ΅ Π² Ρ‚Π°ΠΊΠ°Π²Π° Π΄ΠΆΡƒΠ½Π³Π»Π°.

Основни Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Ρ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • sum() β€” сумиранС
  • min() / max() – ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° ΠΈ максимална стойност
  • mean() - срСдно Π°Ρ€ΠΈΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‡Π½ΠΎ
  • median() - МСдиана
  • length() - количСство

Π“Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ Π² R: dplyr

## dplyr
### Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ агрСгация строк
group_by(titanic, Pclass) %>%
  summarise(passangers = length(PassengerId),
            avg_price  = mean(Fare))

Π’ΡŠΠ² функция group_by() ΠΏΠΎΠ΄Π°Π΄ΠΎΡ…ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ‚ΠΈΡ‚Π°Π½ΠΈΡ‡Π΅Π½, ΠΈ слСд Ρ‚ΠΎΠ²Π° посочи ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Pclass, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Π³Ρ€ΡƒΠΏΠΈΡ€Π°ΠΌΠ΅ Π½Π°ΡˆΠ°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ Ρ‚Π°Π·ΠΈ опСрация с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° %>% ΠΏΡ€Π΅Π΄Π°Π²Π° сС ΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π½Π° функцията summarise()ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈ ΠΎΡ‰Π΅ 2 ΠΏΠΎΠ»Π΅Ρ‚Π°: ΠΏΡŠΡ‚Π½ΠΈΡ†ΠΈ ΠΈ ср.Ρ†Π΅Π½Π°. Π’ ΠΏΡŠΡ€Π²ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ функцията length() изчислява броя Π½Π° Π±ΠΈΠ»Π΅Ρ‚ΠΈΡ‚Π΅, Π° във втория с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° функцията mean() ΠΏΠΎΠ»ΡƒΡ‡ΠΈ срСдната Ρ†Π΅Π½Π° Π½Π° Π±ΠΈΠ»Π΅Ρ‚Π°.

Π“Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² R: data.table

Π’ data.table Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ j ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° Π²Ρ‚ΠΎΡ€Π° позиция Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби ΠΈ Π·Π° Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ by ΠΈΠ»ΠΈ keyby, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π° Ρ‚Ρ€Π΅Ρ‚Π° позиция.

Π‘ΠΏΠΈΡΡŠΠΊΡŠΡ‚ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ Π² Ρ‚ΠΎΠ·ΠΈ случай Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ с описания Π² dplyr, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ²Π° са Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ основния R синтаксис.

Π“Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ Π² R: data.table

## data.table
### Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ строк ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ
titanic[, .(passangers = length(PassengerId),
            avg_price  = mean(Fare)),
        by = Pclass]

Π“Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² Python: pandas

Π“Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ Π² pandas ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° dplyr, Π½ΠΎ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π΅ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° dplyr Π²ΡŠΠΎΠ±Ρ‰Π΅ Π½Π΅ data.table.

Π—Π° Π΄Π° Π³Ρ€ΡƒΠΏΠΈΡ€Π°Ρ‚Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° groupby(), Π² ΠΊΠΎΠΉΡ‚ΠΎ трябва Π΄Π° ΠΏΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ списък с ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΠΏΠΎ ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° с Π΄Π°Π½Π½ΠΈ Ρ‰Π΅ бъдС Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π°.

Π—Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° agg()ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ° Ρ€Π΅Ρ‡Π½ΠΈΠΊ. ΠšΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Ρ€Π΅Ρ‡Π½ΠΈΠΊΠ° са ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅, Π²ΡŠΡ€Ρ…Ρƒ ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅, Π° стойноститС са ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅:

  • sum() β€” сумиранС
  • min() / max() – ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° ΠΈ максимална стойност
  • mean() - срСдно Π°Ρ€ΠΈΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‡Π½ΠΎ
  • median() - МСдиана
  • count() - количСство

Ѐункция reset_index() Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π½ΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈ индСкси, ΠΊΠΎΠΈΡ‚ΠΎ pandas ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ слСд Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ.

Π‘ΠΈΠΌΠ²ΠΎΠ» Π²ΠΈ позволява Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅Ρ‚Π΅ към слСдващия Ρ€Π΅Π΄.

Π“Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ Π² Python: pandas

# Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ агрСгация Π΄Π°Π½Π½Ρ‹Ρ…
titanic.groupby(["Pclass"]).
    agg({'PassengerId': 'count', 'Fare': 'mean'}).
        reset_index()

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ, ΠΏΡ€ΠΈ която ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‚Π΅ Π΄Π²Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ с Π΅Π΄Π½Π°ΠΊΠ²Π° структура. Π”Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°Ρ€Π΅Π΄ΠΈΡ…ΠΌΠ΅, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ga_nov ΠΈ ga_dec. Π’Π΅Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ са ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ ΠΏΠΎ структура, Ρ‚.Π΅. ΠΈΠΌΠ°Ρ‚ Π΅Π΄Π½ΠΈ ΠΈ ΡΡŠΡ‰ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π΄Π°Π½Π½ΠΈ Π² Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ.

Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

Π’ΠΎΠ²Π° Π΅ ΠΊΠ°Ρ‡Π²Π°Π½Π΅ ΠΎΡ‚ Google Analytics Π·Π° мСсСц Π½ΠΎΠ΅ΠΌΠ²Ρ€ΠΈ ΠΈ Π΄Π΅ΠΊΠ΅ΠΌΠ²Ρ€ΠΈ, Π² Ρ‚ΠΎΠ·ΠΈ Ρ€Π°Π·Π΄Π΅Π» Ρ‰Π΅ ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈΠΌ Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π² Π΅Π΄Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°.

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‰ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π² R: tidyverse, dplyr

Π’ dplyr ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ 2 Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π² Π΅Π΄Π½Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° функцията bind_rows(), ΠΏΡ€Π΅Π΄Π°Π²Π°ΠΉΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΠΊΠ°Ρ‚ΠΎ свои Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ.

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² R: dplyr

# Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ объСдинСниС Ρ‚Π°Π±Π»ΠΈΡ†
## dplyr
bind_rows(ga_nov, ga_dec)

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π² R: data.table

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π½Π΅ Π΅ Π½ΠΈΡ‰ΠΎ слоТно, Π½Π΅ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ rbind().

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² R: data.table

## data.table
rbind(ga_nov, ga_dec)

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ съСдиняванС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π² Python: pandas

Π’ pandas функцията сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ concat(), Π² ΠΊΠΎΠΉΡ‚ΠΎ трябва Π΄Π° ΠΏΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ списък с Ρ€Π°ΠΌΠΊΠΈ, Π·Π° Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅.

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ Π² Python: pandas

# Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ объСдинСниС Ρ‚Π°Π±Π»ΠΈΡ†
pd.concat([ga_nov, ga_dec])

Π₯ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ, ΠΏΡ€ΠΈ която ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΎΡ‚ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° сС добавят към ΠΏΡŠΡ€Π²Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΠΎ ΠΊΠ»ΡŽΡ‡. ЧСсто сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡ€ΠΈ обогатяванС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° с Ρ„Π°ΠΊΡ‚ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°Π±Π»ΠΈΡ†Π° с Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ±ΠΈ) с някои Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚Π½ΠΈ Π΄Π°Π½Π½ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ†Π΅Π½Π° Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚).

Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

Има няколко вида съСдинСния:

Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

Π’ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π°Ρ€Π΅Π΄Π΅Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Ρ‚ΠΈΡ‚Π°Π½ΠΈΡ‡Π΅Π½ ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠΎΠ»ΠΎΠ½Π° сСкс, ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΠΎΠ»Π° Π½Π° ΠΏΡŠΡ‚Π½ΠΈΠΊΠ°:

1 - ТСнски
2 - мъТки

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π° - справочник ΠΏΠΎΠ». Π—Π° ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π½ΠΎ прСдставянС Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° ΠΏΠΎΠ»Π° Π½Π° ΠΏΡŠΡ‚Π½ΠΈΡ†ΠΈΡ‚Π΅, трябва Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ»Π° ΠΎΡ‚ указатСля ΠΏΠΎΠ» към масата Ρ‚ΠΈΡ‚Π°Π½ΠΈΡ‡Π΅Π½.

ОбСдиняванС Π½Π° Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½Π° маса Π² R: tidyverse, dplyr

Π’ dplyr Има цяло сСмСйство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅:

  • inner_join()
  • left_join()
  • right_join()
  • full_join()
  • semi_join()
  • nest_join()
  • anti_join()

Най-чСсто използваният Π² моята ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π΅ left_join().

ΠšΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²ΠΈ Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅, ΠΈΠ·Π±Ρ€ΠΎΠ΅Π½ΠΈ ΠΏΠΎ-Π³ΠΎΡ€Π΅, ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π·Π° обСдиняванС, Π° ΠΊΠ°Ρ‚ΠΎ Ρ‚Ρ€Π΅Ρ‚ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ by трябва Π΄Π° посочитС ΠΊΠΎΠ»ΠΎΠ½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π° сС ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚.

ОбСдиняванС Π½Π° Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½Π° маса Π² R: dplyr

# объСдиняСм Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
left_join(titanic, gender,
          by = c("Sex" = "id"))

Π₯ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π² R: data.table

Π’ data.table Врябва Π΄Π° ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ функцията merge().

АргумСнти Π·Π° функция merge() Π² data.table

  • x, y β€” Π’Π°Π±Π»ΠΈΡ†ΠΈ Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅
  • ΠΎΡ‚ β€” Колона, която Π΅ ΠΊΠ»ΡŽΡ‡ΡŠΡ‚ Π·Π° ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅, Π°ΠΊΠΎ ΠΈΠΌΠ° Π΅Π΄Π½ΠΎ ΠΈ ΡΡŠΡ‰ΠΎ ΠΈΠΌΠ΅ Π² Π΄Π²Π΅Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ
  • by.x, by.y β€” ИмСна Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π·Π° обСдиняванС, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΈΠΌΠ΅Π½Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅
  • all, all.x, all.y β€” Π’ΠΈΠΏ Π½Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅, all Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ всички Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΎΡ‚ Π΄Π²Π΅Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, all.x ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° опСрацията LEFT JOIN (Ρ‰Π΅ остави всички Ρ€Π΅Π΄ΠΎΠ²Π΅ Π½Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°), all.y β€” ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ RIGHT JOIN (Ρ‰Π΅ остави всички Ρ€Π΅Π΄ΠΎΠ²Π΅ Π½Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°).

Π₯ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π² R: data.table

# объСдиняСм Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
merge(titanic, gender, by.x = "Sex", by.y = "id", all.x = T)

ОбСдиняванС Π½Π° Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π² Python: pandas

ΠšΠ°ΠΊΡ‚ΠΎ ΠΈ Π² data.table, Аз Н pandas функцията сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ merge().

АргумСнти Π½Π° функцията merge() Π² pandas

  • ΠΊΠ°ΠΊ β€” Π’ΠΈΠΏ Π²Ρ€ΡŠΠ·ΠΊΠ°: ляво, дясно, външно, Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΎ
  • on β€” Колона, която Π΅ ΠΊΠ»ΡŽΡ‡, Π°ΠΊΠΎ ΠΈΠΌΠ° Π΅Π΄Π½ΠΎ ΠΈ ΡΡŠΡ‰ΠΎ ΠΈΠΌΠ΅ Π² Π΄Π²Π΅Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ
  • left_on, right_on β€” ИмСна Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΈΠΌΠ΅Π½Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅

ОбСдиняванС Π½Π° Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π² Python: pandas

# объСдиняСм ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ
titanic.merge(gender, how = "left", left_on = "Sex", right_on = "id")

Основни ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ изчисляСми ΠΊΠΎΠ»ΠΎΠ½ΠΈ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π° са ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ ΠΈ ΡΡŠΡ‰ΠΎ чСсто сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ. Но Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅, ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ промСнят броя Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° изходящата Ρ€Π°ΠΌΠΊΠ° с Π΄Π°Π½Π½ΠΈ.

Какъв Π΅Π·ΠΈΠΊ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ - R ΠΈΠ»ΠΈ Python? И Π΄Π²Π΅Ρ‚Π΅! ΠœΠΈΠ³Ρ€ΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ pandas към tidyverse ΠΈ data.table ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

По ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ функцията ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†, Π½ΠΈΠ΅ раздСлямС входящия ΠΊΠ°Π΄ΡŠΡ€ с Π΄Π°Π½Π½ΠΈ Π½Π° части спорСд някакъв ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ, Ρ‚.Π΅. ΠΏΠΎ стойността Π½Π° Π΅Π΄Π½ΠΎ ΠΏΠΎΠ»Π΅ ΠΈΠ»ΠΈ няколко ΠΏΠΎΠ»Π΅Ρ‚Π°. И Π½ΠΈΠ΅ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ Π°Ρ€ΠΈΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° всСки ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‰Π΅ бъдС Π²ΡŠΡ€Π½Π°Ρ‚ във всСки Ρ€Π΅Π΄, Ρ‚.Π΅. Π±Π΅Π· промяна Π½Π° общия Π±Ρ€ΠΎΠΉ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°.

НапримСр, Π½Π΅ΠΊΠ° Π²Π·Π΅ΠΌΠ΅ΠΌ масата Ρ‚ΠΈΡ‚Π°Π½ΠΈΡ‡Π΅Π½. МоТСм Π΄Π° изчислим какъв ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π΅ Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° всСки Π±ΠΈΠ»Π΅Ρ‚ Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° класа Π½Π° ΠΊΠ°Π±ΠΈΠ½Π°Ρ‚Π°.

Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚ΠΎΠ²Π°, трябва Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ във всСки Ρ€Π΅Π΄ ΠΎΠ±Ρ‰Π°Ρ‚Π° Ρ†Π΅Π½Π° Π½Π° Π±ΠΈΠ»Π΅Ρ‚ Π·Π° Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° класа Π½Π° ΠΊΠ°Π±ΠΈΠ½Π°Ρ‚Π°, към която ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ Π±ΠΈΠ»Π΅Ρ‚ΡŠΡ‚ Π² Ρ‚ΠΎΠ·ΠΈ Ρ€Π΅Π΄, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° всСки Π±ΠΈΠ»Π΅Ρ‚ Π½Π° ΠΎΠ±Ρ‰Π°Ρ‚Π° Ρ†Π΅Π½Π° Π½Π° всички Π±ΠΈΠ»Π΅Ρ‚ΠΈ ΠΎΡ‚ ΡΡŠΡ‰Π°Ρ‚Π° класа Π½Π° ΠΊΠ°Π±ΠΈΠ½Π°Ρ‚Π° .

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π° Π² R: tidyverse, dplyr

Π—Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π½ΠΎΠ²ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅, Π² dplyr изпълнява функция mutate().

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, описан ΠΏΠΎ-Π³ΠΎΡ€Π΅, ΠΊΠ°Ρ‚ΠΎ Π³Ρ€ΡƒΠΏΠΈΡ€Π°Ρ‚Π΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΏΠΎ ΠΏΠΎΠ»Π΅ Pclass ΠΈ сумиранС Π½Π° ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Π² Π½ΠΎΠ²Π° ΠΊΠΎΠ»ΠΎΠ½Π° Ρ…Ρ€Π°Π½Π°. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ€Π°Π·Π³Ρ€ΡƒΠΏΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Ρ‚Π΅ стойноститС Π½Π° ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π° Ρ…Ρ€Π°Π½Π° към Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сС случи Π² ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° ΡΡ‚ΡŠΠΏΠΊΠ°.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π° Π² R: dplyr

group_by(titanic, Pclass) %>%
  mutate(Pclass_cost = sum(Fare)) %>%
  ungroup() %>%
  mutate(ticket_fare_rate = Fare / Pclass_cost)

ΠŸΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² R: data.table

ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ Π·Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ остава ΡΡŠΡ‰ΠΈΡΡ‚ ΠΊΠ°Ρ‚ΠΎ Π² dplyr, трябва Π΄Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ ΠΏΠΎ ΠΏΠΎΠ»Π΅ Pclass. Π˜Π·Π²Π΅Π΄Π΅Ρ‚Π΅ Π² Π½ΠΎΠ²Π° ΠΊΠΎΠ»ΠΎΠ½Π° сумата Π·Π° Π³Ρ€ΡƒΠΏΠ°Ρ‚Π°, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‰Π° Π½Π° всСки Ρ€Π΅Π΄, ΠΈ Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½Π°, Π² която изчислявамС Π΄Π΅Π»Π° ΠΎΡ‚ Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° всСки Π±ΠΈΠ»Π΅Ρ‚ Π² Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Π³Ρ€ΡƒΠΏΠ°.

Π—Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π½ΠΎΠ²ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ към data.table ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°Ρ‰ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ :=. По-Π΄ΠΎΠ»Ρƒ Π΅ Π΄Π°Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° data.table

ΠŸΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² R: data.table

titanic[,c("Pclass_cost","ticket_fare_rate") := .(sum(Fare), Fare / Pclass_cost), 
        by = Pclass]

ΠŸΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python: pandas

Π•Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° добавянС Π½Π° Π½ΠΎΠ²Π° ΠΊΠΎΠ»ΠΎΠ½Π° към pandas - ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ функцията assign(). Π—Π° Π΄Π° ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΠΌ Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° Π±ΠΈΠ»Π΅Ρ‚ΠΈΡ‚Π΅ ΠΏΠΎ класа Π½Π° ΠΊΠ°Π±ΠΈΠ½Π°Ρ‚Π°, Π±Π΅Π· Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅, Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ функцията transform().

По-Π΄ΠΎΠ»Ρƒ Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΠ΅Ρ‚ΠΎ добавямС към Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Ρ‚ΠΈΡ‚Π°Π½ΠΈΡ‡Π΅Π½ ΡΡŠΡ‰ΠΈΡ‚Π΅ 2 ΠΊΠΎΠ»ΠΎΠ½ΠΈ.

ΠŸΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Python: pandas

titanic.assign(Pclass_cost      =  titanic.groupby('Pclass').Fare.transform(sum),
               ticket_fare_rate = lambda x: x['Fare'] / x['Pclass_cost'])

Π’Π°Π±Π»ΠΈΡ†Π° Π·Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅

По-Π΄ΠΎΠ»Ρƒ Π΅ Π΄Π°Π΄Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ…ΠΌΠ΅.

описаниС
тидивСрс
Ρ‚Π°Π±Π»ΠΈΡ†Π° с Π΄Π°Π½Π½ΠΈ
ΠΏΠ°Π½Π΄ΠΈ

Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ
vroom()/ readr::read_csv() / readr::read_tsv()
fread()
read_csv()

БъздаванС Π½Π° ΠΊΠ°Π΄Ρ€ΠΈ с Π΄Π°Π½Π½ΠΈ
tibble()
data.table()
dict() + from_dict()

Π˜Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΈ
select()
Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ j, Π²Ρ‚ΠΎΡ€Π° позиция Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби
ΠΏΡ€Π΅Π΄Π°Π²Π°ΠΌΠ΅ списъка с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби / drop() / filter() / select_dtypes()

Π€ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅
filter()
Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ i, ΠΏΡŠΡ€Π²Π° позиция Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби
Π˜Π·Π±Ρ€ΠΎΡΠ²Π°ΠΌΠ΅ условията Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΈ скоби / filter()

Π“Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅
group_by() + summarise()
Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ j + by
groupby() + agg()

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»Π½ΠΎ обСдиняванС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ (UNION)
bind_rows()
rbind()
concat()

Π₯ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ (JOIN)
left_join() / *_join()
merge()
merge()

Основни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π° ΠΈ добавянС Π½Π° изчислСни ΠΊΠΎΠ»ΠΎΠ½ΠΈ
group_by() + mutate()
Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ j с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° := + Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ by
transform() + assign()

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

МоТС Π±ΠΈ Π² статията описах Π½Π΅ Π½Π°ΠΉ-ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΈΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‰Π΅ сС Ρ€Π°Π΄Π²Π°ΠΌ, Π°ΠΊΠΎ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‚Π΅ Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΌΠΈ Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ просто Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ информацията, Π΄Π°Π΄Π΅Π½Π° Π² статията, с Π΄Ρ€ΡƒΠ³ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π΄Π°Π½Π½ΠΈ Π² R / Python.

ΠšΠ°ΠΊΡ‚ΠΎ писах ΠΏΠΎ-Π³ΠΎΡ€Π΅, Ρ†Π΅Π»Ρ‚Π° Π½Π° статията Π½Π΅ бСшС Π΄Π° Π½Π°Π»ΠΎΠΆΠΈ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΉ Π΅Π·ΠΈΠΊ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡŠΡ€, Π° Π΄Π° опрости Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ Π΄Π²Π°Ρ‚Π° Π΅Π·ΠΈΠΊΠ° ΠΈΠ»ΠΈ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π΄Π° ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ тях.

Ако стС харСсали статията, Ρ‰Π΅ сС Ρ€Π°Π΄Π²Π°ΠΌ Π΄Π° ΠΈΠΌΠ°ΠΌ Π½ΠΎΠ²ΠΈ Π°Π±ΠΎΠ½Π°Ρ‚ΠΈ Π·Π° моята YouTube ΠΈ Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌΠ° ΠΊΠ°Π½Π°Π»ΠΈ.

ΠžΠΏΡ€ΠΎΡ

Кои ΠΎΡ‚ слСднитС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си?

Π’ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° вашия ΠΈΠ·Π±ΠΎΡ€.

Π’ Π°Π½ΠΊΠ΅Ρ‚Π°Ρ‚Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° участват само рСгистрирани ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. Π’ΠΏΠΈΡˆΠΈ сС, Моля Ρ‚Π΅.

Кой ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ (ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ няколко ΠΎΠΏΡ†ΠΈΠΈ)

  • 45,2%tidyverse19

  • 33,3%Π΄Π°Π½Π½ΠΈ.Ρ‚Π°Π±Π»ΠΈΡ†Π°14

  • 54,8%ΠΏΠ°Π½Π΄ΠΈ23

42 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ гласуваха. 9 ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ сС Π²ΡŠΠ·Π΄ΡŠΡ€ΠΆΠ°Ρ…Π°.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€