ኚውሂብ ጋር ለመስራት ዚትኛውን ቋንቋ መምሚጥ ነው - R ወይም Python? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ

በይነመሚብ ላይ R ወይም Python ን በመፈለግ ፣ ዚትኛው ዚተሻለ ፣ ፈጣን እና ኹመሹጃ ጋር ለመስራት ዹበለጠ ምቹ በሆነ ርዕስ ላይ በሚሊዮኖቜ ዚሚቆጠሩ ጜሑፎቜን እና ኪ.ሜ ውይይቶቜን ያገኛሉ። ግን በሚያሳዝን ሁኔታ, እነዚህ ሁሉ መጣጥፎቜ እና ክርክሮቜ በተለይ ጠቃሚ አይደሉም.

ኚውሂብ ጋር ለመስራት ዚትኛውን ቋንቋ መምሚጥ ነው - R ወይም Python? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ

ዹዚህ ጜሑፍ ዓላማ በሁለቱም ቋንቋዎቜ በጣም ታዋቂ በሆኑ ፓኬጆቜ ውስጥ ያሉትን መሠሚታዊ ዹመሹጃ ማቀነባበሪያ ቎ክኒኮቜን ማወዳደር ነው። እና አንባቢዎቜ ገና ዚማያውቁትን ነገር በፍጥነት እንዲቆጣጠሩ ያግዟ቞ው። በፓይዘን ለሚጜፉ, በ R ውስጥ ተመሳሳይ ነገር እንዎት እንደሚሠሩ ይወቁ, እና በተቃራኒው.

በአንቀጹ ወቅት በ R ውስጥ በጣም ታዋቂ ዚሆኑትን ፓኬጆቜ አገባብ እንመሚምራለን ። እነዚህ በቀተ-መጜሐፍት ውስጥ ዚተካተቱት ፓኬጆቜ ናቾው tidyverseእና እንዲሁም እሜጉ data.table. እና ዚእነሱን አገባብ አወዳድር pandasበ Python ውስጥ በጣም ታዋቂው ዹመሹጃ ትንተና ጥቅል።

እኛ ኚመጫን ጀምሮ ፓይዘንን እና አርን በመጠቀም ዚትንታኔ መስኮት ተግባራትን እስኚመፈጞም ድሚስ በጠቅላላው ዹመሹጃ ትንተና መንገድ ደሹጃ በደሹጃ እንሄዳለን።

ይዘቶቜ

ኚግምት ውስጥ ካሉት ፓኬጆቜ ውስጥ በአንዱ ውስጥ አንዳንድ ዹመሹጃ ማቀነባበሪያ ስራዎቜን እንዎት ማኹናወን እንደሚቜሉ ኚሚሱ ይህ ጜሑፍ እንደ ማጭበርበሪያ ወሚቀት ሊያገለግል ይቜላል።

ኚውሂብ ጋር ለመስራት ዚትኛውን ቋንቋ መምሚጥ ነው - R ወይም Python? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ

  1. በ R እና Python መካኚል ዋና ዚአገባብ ልዩነቶቜ
    1.1. ዚጥቅል ተግባራትን መድሚስ
    1.2. ምደባ
    1.3. መሹጃ ጠቋሚ ማድሚግ
    1.4. ዘዎዎቜ እና OOP
    1.5. ዹቧንቧ መስመሮቜ
    1.6. ዚውሂብ መዋቅሮቜ
  2. ስለምንጠቀምባ቞ው ፓኬጆቜ ጥቂት ቃላት
    2.1. ሥርዓታማ
    2.2. ዳታ
    2.3. ፓናስ
  3. ፓኬጆቜን በመጫን ላይ
  4. ውሂብ በመጫን ላይ
  5. ዚውሂብ ፍሬሞቜን መፍጠር
  6. ዹሚፈልጓቾውን አምዶቜ መምሚጥ
  7. ሚድፎቜን በማጣራት ላይ
  8. መቧደን እና ማሰባሰብ
  9. ዚጠሚጎዛዎቜ አቀባዊ ህብሚት (UNION)
  10. ዚጠሚጎዛዎቜ አግድም መቀላቀል (ተቀላቀሉ)
  11. መሰሚታዊ ዚመስኮቶቜ ተግባራት እና ዹተሰሉ አምዶቜ
  12. በ R እና Python ውስጥ በመሹጃ ማቀናበሪያ ዘዎዎቜ መካኚል ያለው ዚግንኙነት ሰንጠሚዥ
  13. መደምደሚያ
  14. ዚትኛውን ጥቅል እንደሚጠቀሙ አጭር ዚዳሰሳ ጥናት

በመሹጃ ትንተና ላይ ፍላጎት ካሎት ዚእኔን ማግኘት ይቜላሉ። ቎ሌግራም О youtube ቻናሎቜ. አብዛኛው ይዘቱ ለ R ቋንቋ ዹተወሰነ ነው።

በ R እና Python መካኚል ዋና ዚአገባብ ልዩነቶቜ

ኹፓይዘን ወደ አር መቀዹር ቀላል ለማድሚግ ወይም በተቃራኒው ትኩሚት ሊሰጧቾው ዚሚገቡ ጥቂት ዋና ዋና ነጥቊቜን እሰጣለሁ.

ዚጥቅል ተግባራትን መድሚስ

አንድ ጥቅል ወደ R ኚተጫነ በኋላ ተግባራቶቹን ለመድሚስ ዚጥቅል ስሙን መግለፅ አያስፈልግዎትም። በአብዛኛዎቹ ሁኔታዎቜ ይህ በ R ውስጥ ዹተለመደ አይደለም, ግን ተቀባይነት ያለው ነው. በኮድዎ ውስጥ ካሉት ተግባራቶቹ ውስጥ አንዱን ካስፈለገዎት ጥቅሉን ማስመጣት አይጠበቅብዎትም ነገር ግን ዚጥቅሉን ስም እና ዚተግባሩን ስም በመግለጜ በቀላሉ ይደውሉት። በ R ውስጥ በጥቅል እና በተግባር ስሞቜ መካኚል ያለው መለያዚት ድርብ ኮሎን ነው። package_name::function_name().

በፓይዘን ውስጥ ፣ በተቃራኒው ፣ ስሙን በግልፅ በመጥቀስ ዚፓኬጅ ተግባራትን መጥራት እንደ ክላሲክ ይቆጠራል። አንድ ጥቅል ሲወርድ ብዙውን ጊዜ አጭር ስም ይሰጠዋል, ለምሳሌ. pandas ብዙውን ጊዜ ዚውሞት ስም ጥቅም ላይ ይውላል pd. ዚጥቅል ተግባር በነጥብ በኩል ይደርሳል package_name.function_name().

ምደባ

በ R ውስጥ ለአንድ ነገር እሎት ለመመደብ ቀስት መጠቀም ዹተለመደ ነው። obj_name <- valueምንም እንኳን አንድ ነጠላ እኩል ምልክት ቢፈቀድም፣ በ R ውስጥ ያለው ነጠላ ዚእኩልነት ምልክት በዋነኝነት እሎቶቜን ወደ ተግባር ነጋሪ እሎቶቜ ለማለፍ ጥቅም ላይ ይውላል።

በፓይዘን ውስጥ፣ ምደባ ዹሚኹናወነው በአንድ ዚእኩልነት ምልክት ብቻ ነው። obj_name = value.

መሹጃ ጠቋሚ ማድሚግ

እዚህም በጣም ጉልህ ዹሆኑ ልዩነቶቜ አሉ. በ R ውስጥ ፣ መሹጃ ጠቋሚ በአንድ ይጀምራል እና ሁሉንም ዚተገለጹ አካላት በውጀቱ ክልል ውስጥ ያካትታል ፣

በፓይዘን ውስጥ መሹጃ ጠቋሚ ኚዜሮ ይጀምራል እና ዹተመሹጠው ክልል በመሹጃ ጠቋሚው ውስጥ ዹተገለጾውን ዚመጚሚሻውን አካል አያካትትም። ስለዚህ ንድፍ x[i:j] በ Python ውስጥ ዹ j አባልን አያካትትም።

በ R notation ውስጥ በአሉታዊ መሹጃ ጠቋሚ ውስጥ ልዩነቶቜም አሉ። x[-1] ኚመጚሚሻው በስተቀር ሁሉንም ዚቬክተሩን ንጥሚ ነገሮቜ ይመልሳል. በፓይዘን ውስጥ፣ ተመሳሳይ ማስታወሻ ዚሚመጣው ዚመጚሚሻውን አካል ብቻ ነው።

ዘዎዎቜ እና OOP

R OOPን በራሱ መንገድ ይተገብራል, ስለዚህ ጉዳይ በጜሁፉ ውስጥ ጜፌያለሁ "OOP በ R ቋንቋ (ክፍል 1): S3 ክፍሎቜ". በአጠቃላይ, R ተግባራዊ ቋንቋ ነው, እና በውስጡ ያለው ሁሉም ነገር በተግባሮቜ ላይ ዚተገነባ ነው. ስለዚህ, ለምሳሌ, ለኀክሎል ተጠቃሚዎቜ, ይሂዱ tydiverse ይልቅ ቀላል ይሆናል pandas. ምንም እንኳን ይህ ዚእኔ ተጚባጭ አስተያዚት ሊሆን ይቜላል.

በአጭር አነጋገር, በ R ውስጥ ያሉ እቃዎቜ ዘዎዎቜ ዹላቾውም (ስለ S3 ክፍሎቜ ኹተነጋገርን, ግን በጣም ብዙም ያልተለመዱ ሌሎቜ ዹ OOP አተገባበርዎቜ አሉ). በእቃው ክፍል ላይ በመመስሚት እነሱን በተለዹ መንገድ ዚሚያስኬዱ አጠቃላይ ተግባራት ብቻ አሉ።

ዹቧንቧ መስመሮቜ

ምናልባት ይህ ስም ነው pandas ሙሉ በሙሉ ትክክል አይሆንም, ግን ትርጉሙን ለማብራራት እሞክራለሁ.

መካኚለኛ ስሌቶቜን ላለማዳን እና በስራ ቊታ ላይ አላስፈላጊ እቃዎቜን ላለማስገባት, ዹቧንቧ መስመር አይነት መጠቀም ይቜላሉ. እነዚያ። ዚአንድን ስሌት ውጀት ኚአንድ ተግባር ወደ ሌላው ያስተላልፉ, እና መካኚለኛ ውጀቶቜን አያስቀምጡ.

መካኚለኛ ስሌቶቜን በተለያዩ ነገሮቜ ውስጥ ዚምናኚማቜበትን ዹሚኹተለውን ዚኮድ ምሳሌ እንውሰድ፡-

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

በቅደም ተኹተል 3 ስራዎቜን አኹናውነናል, እና ዚእያንዳንዳ቞ው ውጀት በተለዹ ነገር ውስጥ ተቀምጧል. ግን እንደ እውነቱ ኹሆነ, እነዚህ መካኚለኛ እቃዎቜ አያስፈልጉንም.

ወይም ደግሞ ዚባሰ፣ ግን ለኀክሎል ተጠቃሚዎቜ ዹበለጠ ዚታወቀ።

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

በዚህ አጋጣሚ, መካኚለኛ ስሌት ውጀቶቜን አላስቀመጥንም, ነገር ግን ኚተሰሩ ተግባራት ጋር ኮድ ማንበብ እጅግ በጣም ምቹ አይደለም.

በ R ውስጥ ዚውሂብ ሂደትን በተመለኹተ በርካታ አቀራሚቊቜን እንመለኚታለን, እና ተመሳሳይ ስራዎቜን በተለያዩ መንገዶቜ ያኚናውናሉ.

በቀተ-መጜሐፍት ውስጥ ዹቧንቧ መስመሮቜ tidyverse በኊፕሬተሩ ዹተተገበሹ %>%.

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

ስለዚህ ዚሥራውን ውጀት እንወስዳለን func1() እና እንደ መጀመሪያው ክርክር ያስተላልፉ func2(), ኚዚያም ዹዚህን ስሌት ውጀት እንደ መጀመሪያው ክርክር እናልፋለን func3(). እና በመጚሚሻም በእቃው ውስጥ ዚተኚናወኑትን ሁሉንም ስሌቶቜ እንጜፋለን obj <-.

ኹላይ ያሉት ሁሉ ኚቃላቶቜ በተሻለ በዚህ ሜም ተገልጞዋል፡-
ኚውሂብ ጋር ለመስራት ዚትኛውን ቋንቋ መምሚጥ ነው - R ወይም Python? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ

В 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(). ዹተገኘው ውጀት በአንድ ነገር ውስጥ ተቀምጧል ነገር .

ዚውሂብ መዋቅሮቜ

በ R እና Python ውስጥ ያሉ ዹመሹጃ አወቃቀሮቜ ተመሳሳይ ና቞ው፣ ግን ዚተለያዩ ስሞቜ አሏ቞ው።

መግለጫ
ርዕስ በአር
በፓይዘን/ፓንዳስ ስም

ዹጠሹጮዛ መዋቅር
data.frame, data.table, tibble
ዚውሂብ ፍሬም

አንድ-ልኬት ዚእሎቶቜ ዝርዝር
ቬክተር
ተኚታታይ በፓንዳዎቜ ወይም በንጹህ ፓይዘን ውስጥ ይዘርዝሩ

ባለብዙ ደሹጃ ሠንጠሚዥ ያልሆነ መዋቅር
ዝርዝር
መዝገበ ቃላት (ዲክት)

ኹዚህ በታቜ አንዳንድ ሌሎቜ ባህሪያትን እና ልዩነቶቜን በአገባብ ውስጥ እንመለኚታለን።

ስለምንጠቀምባ቞ው ፓኬጆቜ ጥቂት ቃላት

በመጀመሪያ, በዚህ ጜሑፍ ውስጥ ስለሚያውቁት ፓኬጆቜ ትንሜ እነግርዎታለሁ.

ሥርዓታማ

ኩፊሮላዊ ድር ጣቢያ- tidyverse.org
ኚውሂብ ጋር ለመስራት ዚትኛውን ቋንቋ መምሚጥ ነው - R ወይም Python? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ
ቀተ መጻሕፍት tidyverse በ RStudio ኹፍተኛ ዹምርምር ሳይንቲስት በሄድሊ ዊክሃም ተፃፈ። tidyverse ዚውሂብ ሂደትን ዚሚያቃልሉ አስደናቂ ዚፓኬጆቜን ስብስብ ያቀፈ ሲሆን ኚእነዚህ ውስጥ 5 ቱ ኹCRAN ማኚማቻ 10 ምርጥ ውርዶቜ ውስጥ ተካትተዋል።

ዚቀተ መፃህፍቱ እምብርት ዚሚኚተሉትን ጥቅሎቜ ያቀፈ ነው። ggplot2, dplyr, tidyr, readr, purrr, tibble, stringr, forcats. እያንዳንዳ቞ው እነዚህ ፓኬጆቜ አንድ ዹተወሰነ ቜግር ለመፍታት ዚታለሙ ና቞ው። ለምሳሌ dplyr ለመሹጃ አያያዝ ዹተፈጠሹ ፣ tidyr ውሂቡን ወደ ንጹህ ቅጜ ለማምጣት ፣ stringr በሕብሚቁምፊዎቜ መስራትን ያቃልላል፣ እና ggplot2 በጣም ታዋቂ ኹሆኑ ዹመሹጃ እይታ መሳሪያዎቜ ውስጥ አንዱ ነው።

ጥቅሙ tidyverse ቀላልነት እና ለማንበብ ቀላል ነው፣ እሱም በብዙ መልኩ ኹ SQL መጠይቅ ቋንቋ ጋር ተመሳሳይ ነው።

ዳታ

ኚውሂብ ጋር ለመስራት ዚትኛውን ቋንቋ መምሚጥ ነው - R ወይም Python? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይኩፊሮላዊ ድር ጣቢያ- 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 አሜሪካዊው ዌስ ማኪኒ ነው።

በ Python ውስጥ ዚውሂብ ትንታኔን በተመለኹተ, እኩል ነው pandas አይ. ኚዚትኛውም ምንጮቜ መሹጃን ኚመጫን ጀምሮ እስኚ ምስላዊ እይታ ድሚስ ማንኛውንም ማጭበርበር በመሹጃ እንዲፈጜሙ ዚሚያስቜልዎ በጣም ብዙ ባለብዙ-ደሹጃ ጥቅል።

ተጚማሪ ፓኬጆቜን በመጫን ላይ

በዚህ ጜሑፍ ውስጥ ዚተብራሩት ጥቅሎቜ በመሠሚታዊ R እና Python ስርጭቶቜ ውስጥ አልተካተቱም. ምንም እንኳን ትንሜ ማስጠንቀቂያ ቢኖርም ፣ ዚአናኮንዳ ስርጭትን ኚጫኑ ፣ ኚዚያ በተጚማሪ ይጫኑ 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)

በፓይዘን ውስጥ ጥቅሎቜን በመጫን ላይ

እንግዲያው፣ ንፁህ ፓይዘንን ኚጫኑ፣ እንግዲያውስ pandas እራስዎ መጫን ያስፈልግዎታል. እንደ ኊፕሬቲንግ ሲስተምዎ ዚትእዛዝ መስመር ወይም ተርሚናል ይክፈቱ እና ዹሚኹተለውን ትዕዛዝ ያስገቡ።

pip install pandas

ኚዚያ ወደ ፓይዘን እንመለሳለን እና ዚተጫነውን ጥቅል በትእዛዙ እናስገባለን። import.

import pandas as pd

ውሂብ በመጫን ላይ

መሹጃን ማውጣት በመሹጃ ትንተና ውስጥ በጣም አስፈላጊ ኚሆኑት ደሚጃዎቜ ውስጥ አንዱ ነው. ሁለቱም Python እና R, ኹተፈለገ, ኹማንኛውም ምንጮቜ መሹጃን ለማግኘት ሰፊ እድሎቜን ይሰጡዎታል: ዚአካባቢ ፋይሎቜ, ኚበይነመሚቡ ፋይሎቜ, ድህሚ ገጟቜ, ሁሉንም አይነት ዚውሂብ ጎታዎቜ.

ኚውሂብ ጋር ለመስራት ዚትኛውን ቋንቋ መምሚጥ ነው - R ወይም Python? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ

በጜሁፉ ውስጥ ብዙ ዚውሂብ ስብስቊቜን እንጠቀማለን-

  1. ኹጉግል አናሌቲክስ ሁለት ውርዶቜ።
  2. ዚታይታኒክ ዚተሳፋሪ ዳታ ስብስብ።

ሁሉም ውሂብ በእኔ ላይ ነው። ዹፊልሙ በ csv እና tv ፋይሎቜ መልክ። ኚዚት እንጠይቃ቞ዋለን?

ውሂብን ወደ R በመጫን ላይ፡ ንፅህና፣ ቪሩም፣ አንባቢ

ውሂብን ወደ ቀተ-መጜሐፍት ለመጫን tidyverse ሁለት ጥቅሎቜ አሉ: vroom, readr. vroom ይበልጥ ዘመናዊ, ግን ለወደፊቱ ጥቅሎቹ ሊጣመሩ ይቜላሉ.

ጥቅስ ኹ ኩፊሮላዊ ሰነዶቜ vroom.

vroom vs አንባቢ
መለቀቅ ምን ያደርጋል vroom ማለት ነው። readr? ለአሁኑ ሁለቱ ፓኬጆቜ ለዚብቻ እንዲሻሻሉ ለማድሚግ አቅደናል፣ነገር ግን ወደፊት ጥቅሎቹን አንድ እናደርጋለን። ዹvroom ሰነፍ ንባብ አንዱ ጉዳቱ አንዳንድ ዚውሂብ ቜግሮቜ በፊት ሪፖርት ሊደሹጉ አይቜሉም፣ ስለዚህ እነሱን እንዎት በተሻለ ሁኔታ አንድ ለማድሚግ አንዳንድ ሀሳቊቜን ይጠይቃል።

vroom vs አንባቢ
መልቀቅ ማለት ምን ማለት ነው? 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: አንባቢ በመጫን ላይ

# 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")

በፓይዘን ውስጥ ውሂብን በመጫን ላይ: pandas

ኹ R ፓኬጆቜ ጋር ካነፃፅር, በዚህ ሁኔታ አገባብ በጣም ቅርብ ነው pandas ይሆናል readr, ምክንያቱም pandas ውሂብን ኚዚትኛውም ቊታ መጠዹቅ ይቜላል, እና በዚህ ፓኬጅ ውስጥ ሙሉ ዚቀተሰብ ተግባራት አሉ read_*().

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

እና ኚተለያዩ ቅርጞቶቜ ውሂብ ለማንበብ ዹተነደፉ ሌሎቜ ብዙ ተግባራት። ለዓላማቜን ግን በቂ ነው። read_table() ወይም read_csv() ክርክር በመጠቀም ሮፕቮ ዚዓምድ መለያውን ለመለዚት.

በፓይዘን ውስጥ ውሂብን በመጫን ላይ: 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? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ

ስለዚህ ኚምንጩ ሠንጠሚዥ ጋር ኚምታኚናውኗ቞ው ዚመጀመሪያ ክንውኖቜ አንዱ አላስፈላጊ መሚጃዎቜን ማጜዳት እና ይህ መሹጃ ዚያዘውን ማህደሹ ትውስታ ነጻ ማድሚግ ነው።

አምዶቜን በ 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]

ዚት
እኔ - ዚት ፣ ማለትም በሚድፎቜ ማጣራት
j - ይምሚጡ|አዘምን|አድርግ፣ ማለትም። ዓምዶቜን መምሚጥ እና መለወጥ
በ - ዚውሂብ ስብስብ

በ 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 ዹሚፈልጓቾውን ዓምዶቜ በመደበኛ መግለጫዎቜ ወይም ሌሎቜ ተግባራትን በመጠቀም ዹሚፈልጓቾውን ዚአምዶቜ ስም ያጣሩ።

በፓይዘን፣ ፓንዳዎቜ ውስጥ አምዶቜን መምሚጥ

አምዶቜን በስም ለመምሚጥ pandas ስማ቞ውን ዝርዝር ማቅሚብ በቂ ነው። እና መደበኛ አገላለጟቜን በመጠቀም አምዶቜን በስም ለመምሚጥ ወይም ለማግለል ተግባሮቹን መጠቀም ያስፈልግዎታል drop() О filter(), እና ክርክር ዘንግ=1, ኚሚድፎቜ ይልቅ ዓምዶቜን ማካሄድ አስፈላጊ መሆኑን ዚሚያመለክቱበት.

መስክን በውሂብ አይነት ለመምሚጥ ተግባሩን ይጠቀሙ select_dtypes(), እና ወደ ክርክሮቜ ያካትታሉ ወይም አታካትት ኚዚትኞቹ መስኮቜ መምሚጥ እንዳለቊት ዚሚዛመዱ ዚውሂብ ዓይነቶቜን ዝርዝር ያስተላልፉ።

በፓይዘን ውስጥ አምዶቜን መምሚጥ: 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? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ

ሚድፎቜን በ R: tydyverse, dplyr በማጣራት ላይ

В dplyr ተግባሩ ሚድፎቜን ለማጣራት ያገለግላል filter(). እንደ መጀመሪያው ክርክር ዚውሂብ ፍሬም ይወስዳል፣ ኚዚያ ዚማጣሪያ ሁኔታዎቜን ይዘሚዝራሉ።

ጠሹጮዛን ለማጣራት አመክንዮአዊ መግለጫዎቜን በሚጜፉበት ጊዜ, በዚህ ሁኔታ, ያለ ጥቅሶቜ እና ዚሰንጠሚዡን ስም ሳይገልጹ ዚአምድ ስሞቜን ይግለጹ.

ለማጣራት ብዙ ምክንያታዊ መግለጫዎቜን ሲጠቀሙ ዚሚኚተሉትን ኊፕሬተሮቜ ይጠቀሙ፡

  • & ወይም ነጠላ ሰሹዝ - ምክንያታዊ AND
  • | - ምክንያታዊ ወይም

ሚድፎቜን በ 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]

ዚት
እኔ - ዚት ፣ ማለትም በሚድፎቜ ማጣራት
j - ይምሚጡ|አዘምን|አድርግ፣ ማለትም። ዓምዶቜን መምሚጥ እና መለወጥ
በ - ዚውሂብ ስብስብ

ክርክሩ ሚድፎቜን ለማጣራት ያገለግላል i, በካሬ ቅንፎቜ ውስጥ ዚመጀመሪያው ቊታ ያለው.

አምዶቜ ያለ ጥቅስ ምልክቶቜ እና ዚሰንጠሚዡን ስም ሳይገልጹ በሎጂካዊ አገላለጟቜ ይደርሳሉ።

አመክንዮአዊ አገላለጟቜ ልክ እንደ ውስጥ እርስ በርስ ዚተያያዙ ናቾው dplyr በ & እና | ኊፕሬተሮቜ በኩል።

ሚድፎቜን በ R: data.table ውስጥ በማጣራት ላይ

## data.table
### фОльтрацОя стрПк пП ПЎМПЌу услПвОю
ga_nov[source == "google"]
### фОльтр пП ЎвуЌ услПвОяЌ сПеЎОМёММыЌ лПгОческОЌ О
ga_nov[source == "google" & sessions >= 10]
### фОльтр пП ЎвуЌ услПвОяЌ сПеЎОМёММыЌ лПгОческОЌ ОлО
ga_nov[source == "google" | sessions >= 10]

ሕብሚቁምፊዎቜን በፓይዘን ማጣራት: pandas

በሚድፎቜ አጣራ pandas ውስጥ ኚማጣራት ጋር ተመሳሳይ data.table, እና በካሬ ቅንፎቜ ውስጥ ይኹናወናል.

በዚህ ሁኔታ ዚአምዶቜ መዳሚሻ ዚግድ ዚውሂብ ክፈፉን ስም በማመልኚት ይኹናወናል ፣ ኚዚያ ዚአምዱ ስም በካሬ ቅንፎቜ ውስጥ በትዕምርተ ጥቅስ ውስጥ ሊገለጜ ይቜላል (ምሳሌ df['col_name']) ወይም ኚወቅቱ በኋላ ያለ ጥቅሶቜ (ምሳሌ df.col_name).

ዚውሂብ ፍሬም በበርካታ ሁኔታዎቜ ማጣራት ካስፈለገዎት እያንዳንዱ ሁኔታ በቅንፍ ውስጥ መቀመጥ አለበት። ምክንያታዊ ሁኔታዎቜ በኊፕሬተሮቜ እርስ በርስ ዚተያያዙ ናቾው & О |.

ሕብሚቁምፊዎቜን በፓይዘን ማጣራት: 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? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ

እነዚህን ስራዎቜ ለማኹናወን ያለው አገባብ በሁሉም በምንገመግማቾው ጥቅሎቜ ላይ ተበታትኗል።

በዚህ አጋጣሚ ዚውሂብ ፍሬም እንደ ምሳሌ እንወስዳለን ታይታኒክ, እና በካቢን ክፍል ላይ በመመስሚት ዚቲኬቶቜን ቁጥር እና አማካይ ዋጋ ያሰሉ.

በ 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]

በፓይዘን ውስጥ ዚውሂብ መቩደን እና ማሰባሰብ፡ pandas

መቧደን pandas ጋር ይመሳሰላል። dplyr, ነገር ግን ውህደቱ ተመሳሳይ አይደለም dplyr አይደለም data.table.

ለመቧደን, ዘዮውን ይጠቀሙ groupby(), ዚውሂብ ክፈፉ ዚሚሰበሰብበትን ዚአምዶቜ ዝርዝር ማለፍ ያስፈልግዎታል.

ለማጠቃለል ዘዮውን መጠቀም ይቜላሉ agg()መዝገበ ቃላትን ዹሚቀበል. ዹመዝገበ-ቃላቱ ቁልፎቜ ዚማጠቃለያ ተግባራትን ዚሚተገበሩባ቞ው ዓምዶቜ ናቾው ፣ እና እሎቶቹ ዚድምር ተግባራት ስሞቜ ና቞ው።

ዚማዋሃድ ተግባራት;

  • sum() - ማጠቃለያ
  • min() / max() - ዝቅተኛ እና ኹፍተኛ ዋጋ
  • mean() - አማካይ
  • median() - መካኚለኛ
  • count() - ብዛት

ሥራ reset_index() ኚታቜ ባለው ምሳሌ ውስጥ ዹጎጆ ኢንዎክሶቜን ዳግም ለማስጀመር ጥቅም ላይ ይውላል pandas ኚውሂብ ማሰባሰብ በኋላ ነባሪዎቜ።

ምልክት ወደ ቀጣዩ መስመር እንዲሄዱ ይፈቅድልዎታል.

በፓይዘን ውስጥ መቧደን እና ማሰባሰብ፡ pandas

# группОрПвка О агрегацОя ЎаММых
titanic.groupby(["Pclass"]).
    agg({'PassengerId': 'count', 'Fare': 'mean'}).
        reset_index()

ዚጠሚጎዛዎቜ አቀባዊ መጋጠሚያ

ተመሳሳይ መዋቅር ሁለት ወይም ኚዚያ በላይ ሠንጠሚዊቜን ዚሚቀላቀሉበት ክዋኔ። ዚጫንነው መሹጃ ሠንጠሚዊቜን ይዟል ga_nov О ga_ዲሎ. እነዚህ ሠንጠሚዊቜ በመዋቅር ውስጥ ተመሳሳይ ናቾው, ማለትም. ተመሳሳይ አምዶቜ አሏ቞ው፣ እና በእነዚህ አምዶቜ ውስጥ ያሉት ዚውሂብ ዓይነቶቜ።

ኚውሂብ ጋር ለመስራት ዚትኛውን ቋንቋ መምሚጥ ነው - R ወይም Python? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ

ይህ ዚኖቬምበር እና ዲሎምበር ወር ኹ Google ትንታኔዎቜ ዚመጣ ጭነት ነው፣ በዚህ ክፍል ውስጥ ይህንን ውሂብ ወደ አንድ ሠንጠሚዥ እናጣምራለን።

በ 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()እነሱን ለማጣመር ዚክፈፎቜ ዝርዝርን ወደዚያ ማለፍ ያስፈልግዎታል።

ሕብሚቁምፊዎቜን በፓይዘን ማጣራት: pandas

# вертОкальМПе ПбъеЎОМеМОе таблОц
pd.concat([ga_nov, ga_dec])

ዚጠሚጎዛዎቜ አግድም መቀላቀል

ኹሁለተኛው አምዶቜ ወደ መጀመሪያው ሠንጠሚዥ በቁልፍ ዚሚጚመሩበት ክዋኔ። ብዙ ጊዜ ጥቅም ላይ ዹሚውለው ዚእውነታ ሠንጠሚዥን ሲያበለጜግ ነው (ለምሳሌ ዚሜያጭ መሹጃ ያለው ሠንጠሚዥ) ኚአንዳንድ ማጣቀሻ መሚጃዎቜ ጋር (ለምሳሌ ዚምርት ዋጋ)።

ኚውሂብ ጋር ለመስራት ዚትኛውን ቋንቋ መምሚጥ ነው - R ወይም Python? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ

በርካታ ዚመገጣጠም ዓይነቶቜ አሉ-

ኚውሂብ ጋር ለመስራት ዚትኛውን ቋንቋ መምሚጥ ነው - R ወይም Python? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ

ቀደም ሲል በተጫነው ጠሹጮዛ ውስጥ ታይታኒክ አምድ አለን። ፆታኚተሳፋሪው ዚፆታ ኮድ ጋር ዚሚዛመድ፡-

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().

በውህደት () ላይ ዚሚሰሩ ክርክሮቜ በ data.table ውስጥ

  • x, y - ለመቀላቀል ጠሚጎዛዎቜ
  • በ - በሁለቱም ሰንጠሚዊቜ ውስጥ ተመሳሳይ ስም ካለው ለመቀላቀል ቁልፍ ዹሆነው አምድ
  • by.x, by.y - በሠንጠሚዡ ውስጥ ዚተለያዩ ስሞቜ ካላ቞ው ዚአምድ ስሞቜ ይዋሃዳሉ
  • all, all.x, all.y - ዹመቀላቀል አይነት, ሁሉም ሁሉንም ሚድፎቜ ኚሁለቱም ጠሚጎዛዎቜ ይመልሳል, all.x ኚግራ መቀላቀል አሠራር ጋር ይዛመዳል (ዚመጀመሪያውን ሰንጠሚዥ ሁሉንም ሚድፎቜ ይተዋል), all.y - ኹ ጋር ይዛመዳል. ዹቀኝ መቀላቀል ክዋኔ (ዹሁለተኛው ሰንጠሚዥ ሁሉንም ሚድፎቜ ይተዋል)።

ዚጠሚጎዛዎቜ አግድም መቀላቀል በ R: data.table

# ПбъеЎОМяеЌ таблОцы
merge(titanic, gender, by.x = "Sex", by.y = "id", all.x = T)

አግድም ሠንጠሚዥ በፓይዘን መቀላቀል፡ pandas

እንዲሁም ውስጥ data.table, በ ውስጥ pandas ተግባሩ ጠሚጎዛዎቜን ለመቀላቀል ያገለግላል merge().

በፓንዳዎቜ ውስጥ ዚመዋሃድ () ተግባር ክርክሮቜ

  • እንዎት - ዚግንኙነት አይነት: ግራ, ቀኝ, ውጫዊ, ውስጣዊ
  • ላይ - በሁለቱም ሰንጠሚዊቜ ውስጥ ተመሳሳይ ስም ካለው ቁልፍ ዹሆነው አምድ
  • በግራ_ላይ ፣ በቀኝ_ላይ - ዹቁልፍ አምዶቜ ስሞቜ ፣ በሰንጠሚዥ ውስጥ ዚተለያዩ ስሞቜ ካሏ቞ው

አግድም ሠንጠሚዥ በፓይዘን መቀላቀል፡ pandas

# ПбъеЎОМяеЌ пП ключу
titanic.merge(gender, how = "left", left_on = "Sex", right_on = "id")

መሰሚታዊ ዚመስኮቶቜ ተግባራት እና ዹተሰሉ አምዶቜ

ዚመስኮት ተግባራት ኚድምር ተግባራት ጋር ተመሳሳይ ና቞ው፣ እና ብዙ ጊዜ በመሹጃ ትንተና ውስጥም ጥቅም ላይ ይውላሉ። ነገር ግን እንደ ማጠቃለያ ተግባራት፣ ዚመስኮት ተግባራት ዚወጪውን ዚውሂብ ፍሬም ዚሚድፎቜ ብዛት አይለውጡም።

ኚውሂብ ጋር ለመስራት ዚትኛውን ቋንቋ መምሚጥ ነው - R ወይም Python? ሁለቱም! ኚፓንዳዎቜ ወደ ንጜህና እና ዳታ.ጠሹጮዛ እና ወደ ኋላ በመሰደድ ላይ

በመሠሚቱ ዚመስኮቱን ተግባር በመጠቀም መጪውን ዚውሂብ ፍሬም በአንዳንድ መስፈርቶቜ መሰሚት ወደ ክፍሎቜ እንኚፍላለን, ማለትም. በመስክ ዋጋ ወይም በበርካታ መስኮቜ። እና በእያንዳንዱ መስኮት ላይ ዚሂሳብ ስራዎቜን እንሰራለን. ዚእነዚህ ስራዎቜ ውጀት በእያንዳንዱ መስመር ውስጥ ይመለሳል, ማለትም. በሠንጠሚዡ ውስጥ ያሉትን ጠቅላላ ዚሚድፎቜ ብዛት ሳይቀይሩ.

ለምሳሌ, ጠሹጮዛውን እንውሰድ ታይታኒክ. ዚእያንዳንዱ ትኬት ዋጋ በክፍሉ ክፍል ውስጥ ምን ያህል መቶኛ እንደነበሚ ማስላት እንቜላለን።

ይህንን ለማድሚግ በእያንዳንዱ መስመር ውስጥ በዚህ መስመር ላይ ትኬቱ ለሚገባበት ዹአሁኑ ዚካቢኔ ክፍል ዚቲኬት አጠቃላይ ወጪ በእያንዳንዱ መስመር ውስጥ ማግኘት አለብን ፣ ኚዚያ ዚእያንዳንዱን ትኬት ዋጋ በአንድ ካቢኔ ክፍል ውስጥ ባሉ ሁሉም ትኬቶቜ ዋጋ ይኹፋፍሉ ። .

ዚመስኮት ተግባራት በ 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()

ዚጠሚጎዛዎቜ አግድም መቀላቀል (ተቀላቀሉ)
left_join() / *_join()
merge()
merge()

መሰሚታዊ ዚመስኮት ተግባራት እና ዹተሰላ አምዶቜ መጹመር
group_by() + mutate()
ክርክር j ኊፕሬተሩን በመጠቀም := + ክርክር by
transform() + assign()

መደምደሚያ

ምናልባት በአንቀጹ ውስጥ በጣም ጥሩውን ዚውሂብ ሂደት አተገባበርን ዚገለጜኩት አይደለም ፣ ስለሆነም በአስተያዚቶቹ ውስጥ ስህተቶቌን ካሚሙ ወይም በአንቀጹ ውስጥ ዹተሰጠውን መሹጃ በ R / Python ውስጥ ካለው መሹጃ ጋር ለመስራት ኚሌሎቜ ቎ክኒኮቜ ጋር ካሟሉ ደስተኛ ነኝ ።

ኹላይ እንደጻፍኩት ዚጜሁፉ አላማ ዚትኛው ቋንቋ ዚተሻለ እንደሆነ ያለውን አስተያዚት ለመጫን ሳይሆን ሁለቱንም ቋንቋዎቜ ዹመማር እድልን ለማቃለል ወይም አስፈላጊ ኹሆነም በመካኚላ቞ው ለመሰደድ ነው።

ጜሑፉን ኚወደዱ፣ ዚእኔን አዲስ ተመዝጋቢዎቜ በማግኘቮ ደስተኛ ነኝ youtube О ቎ሌግራም ቻናሎቜ.

ዚድምፅ አሰጣጥ

ኚሚኚተሉት ጥቅሎቜ ውስጥ ዚትኛውን በስራዎ ይጠቀማሉ?

በአስተያዚቶቹ ውስጥ ዚመሚጡትን ምክንያት መጻፍ ይቜላሉ.

በዳሰሳ ጥናቱ ውስጥ ዚተመዘገቡ ተጠቃሚዎቜ ብቻ መሳተፍ ይቜላሉ። ስግን እንእባክህን።

ዚትኛውን ዚውሂብ ማቀነባበሪያ ጥቅል ይጠቀማሉ (ብዙ አማራጮቜን መምሚጥ ይቜላሉ)

  • 45,2%ንጜህና19

  • 33,3%ዳታ.ሠንጠሚዥ14

  • 54,8%pandas23

42 ተጠቃሚዎቜ ድምጜ ሰጥተዋል። 9 ተጠቃሚዎቜ ድምፀ ተአቅቩ አድርገዋል።

ምንጭ: hab.com

አስተያዚት ያክሉ