> 🎀 Corey Schafer β€” ΠšΠΎΡ€ΠΈ Π¨Π΅Ρ„Π΅Ρ€ β€” популярный тСхничСский Π²ΠΈΠ΄Π΅ΠΎΠ±Π»ΠΎΠ³Π΅Ρ€ ΠΈ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ Π½Π° Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΌ Ρ€Π°Π·Π±ΠΎΡ€Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Python, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Pandas ΠΈ Django. ΠœΠ°ΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ управлСния структурами Π΄Π°Π½Π½Ρ‹Ρ…: ΠΊΠ°ΠΊ эффСктивно Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ строки ΠΈ столбцы Π² Pandas ⚑ Π—Π°Ρ‡Π΅ΠΌ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Экономия Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ: Π’Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ массивы Π΄Π°Π½Π½Ρ‹Ρ… Π·Π° сСкунды, избавляясь ΠΎΡ‚ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ рСдактирования CSV-Ρ„Π°ΠΉΠ»ΠΎΠ². Чистота ΠΊΠΎΠ΄Π°: Π£Π·Π½Π°Π΅Ρ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ использованиС ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок вмСсто Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠΉ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ спасаСт ΠΎΡ‚ критичСских ошибок Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: ΠžΡΠ²ΠΎΠΈΡ‚Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΈ условным ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ строк, Ρ‡Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ качСствСнных датасСтов для Machine Learning. πŸ—Ί ΠšΠ°Ρ€Ρ‚Π° Π½Π°Π²Ρ‹ΠΊΠΎΠ² | Навык | Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ | Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ слоТности | ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ | | :--- | :--- | :--- | :--- | | Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ | | Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ | Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² (Feature Engineering) | | Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ | | Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ | ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… (Data Cleaning) | | Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ строк | | Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ | Нормализация Π΄Π°Π½Π½Ρ‹Ρ… | | Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ строк | | Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ | БлияниС датасСтов | | Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ строк | | ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ | Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ выбросов ΠΈ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² | 1. Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ создания ΠΈ объСдинСния ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π’ процСссС Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ… часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ситуация, ΠΊΠΎΠ³Π΄Π° исходная информация Ρ€Π°Π·Ρ€ΠΎΠ·Π½Π΅Π½Π°. НапримСр, Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ столбцы с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈ фамилиями сотрудников, Π½ΠΎ для ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² трСбуСтся ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ «Имя Ѐамилия». ΠšΠΎΡ€ΠΈ Π¨Π΅Ρ„Π΅Ρ€ дСмонстрируСт, Ρ‡Ρ‚ΠΎ Π² Pandas объСдинСниС Π΄Π°Π½Π½Ρ‹Ρ… β€” это элСгантная ΠΈ быстрая опСрация, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π°Ρ слоТных Ρ†ΠΈΠΊΠ»ΠΎΠ². ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ DataFrame с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«TonyΒ») ΠΈ (Β«StarkΒ»). Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ столбСц , ΠΌΡ‹ просто складываСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ряды, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ строковый ΠΏΡ€ΠΎΠ±Π΅Π»: . Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ критичСский совСт спикСра: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки. Если Π²Ρ‹ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ , Python воспримСт это ΠΊΠ°ΠΊ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС ΠΈΠ»ΠΈ нСпрСдсказуСмому повСдСнию. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ созданы, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ, скаТСм, Π³ΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π΄ΠΎΡ…ΠΎΠ΄ Π½Π° основС СТСмСсячных Π²Ρ‹ΠΏΠ»Π°Ρ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Π½Π΅ просто Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ «статичныС» ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, Π° Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ расчСтов прямо Π² структуру DataFrame. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Pandas автоматичСски Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ индСксу, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ риск смСщСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ объСдинСнии. > "I do want to point out that you can't use the dot notation when assigning a column like this we have to use the brackets like we did here in order to make these assignments because if you use dot notation then Python is going to think that you're trying to assign an attribute onto the data frame object and not a column." Помимо простой ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ позволяСт ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. Если Ρƒ вас Π΅ΡΡ‚ΡŒ столбСц с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Ρ€ΠΎΠ΄Π΅ Β«Steve RogersΒ», Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π΄Π²Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈ . АргумСнт здСсь ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ: ΠΎΠ½ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сплита ΠΈΠ· списка Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ столбцы DataFrame. Π‘Π΅Π· Π½Π΅Π³ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π±Ρ‹ просто ΡΠ΅Ρ€ΠΈΡŽ списков, Ρ‡Ρ‚ΠΎ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ для дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹. βœ… Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ сСйчас: Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ DataFrame с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ ΠΈ . Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ слоТСния строк, создайтС Π½ΠΎΠ²Ρ‹ΠΉ столбСц , объСдинив ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ исходныС столбцы ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ . 2. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…: ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ строк Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ записСй β€” это Ρ…Π»Π΅Π± насущный спСциалиста ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Часто ΠΌΡ‹ сталкиваСмся с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² DataFrame Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ наблюдСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π½ΠΎΠ²ΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅) ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Β«ΡˆΡƒΠΌΠ½Ρ‹Ρ…Β» записСй. ΠšΠΎΡ€ΠΈ Π¨Π΅Ρ„Π΅Ρ€ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, нСсмотря Π½Π° свою простоту, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ внимания ΠΊ дСталям, особСнно Π² части индСксов. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ записи (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ) ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ, Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ с ошибкой индСксации, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ . АргумСнт сообщаСт Pandas: Β«Π½Π΅ пытайся Π½Π°ΠΉΡ‚ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ индСкс для этой строки, просто создай Π½ΠΎΠ²Ρ‹ΠΉ с нуля». Π­Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ строк ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π·Π½ΠΎΠΌ порядкС ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, индСксы ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ. Если Π²Ρ‹ добавляСтС Π½ΠΎΠ²Ρ‹ΠΉ DataFrame ΠΊ , слСдитС Π·Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ . Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ появлСниС ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΎ сортировкС ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ прСдсказуСмым. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк β€” это процСсс Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ , пСрСдавая Π² Π½Π΅Π³ΠΎ Ρ‚Π΅Ρ… записСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. Однако Β«Π²Ρ‹ΡΡˆΠΈΠΉ ΠΏΠΈΠ»ΠΎΡ‚Π°ΠΆΒ» β€” это ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π° основС условий. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΡΠΊΠ°Ρ‚ΡŒ ID строки, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€: , Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ . Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ваш ΠΊΠΎΠ΄ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹ΠΌ: ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Π΄Π°ΠΆΠ΅ Ссли Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ измСнятся. ΠšΠΎΡ€ΠΈ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚: всСгда выноситС условия Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Ρ‡ΠΈΡ‰Π΅, Π½ΠΎ ΠΈ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. > "I don't really like all of this being bunched up together because I think that it's hard to read and you always want your code to be easy to read by other developers so I would pull the conditional out into its own variable and instead I would say something like this I would say filt for filter is equal to and then I'll just grab our conditional here." ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ копию ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ исходный DataFrame, Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ . Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ для этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ нСдоступСн, поэтому для сохранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ . Π­Ρ‚ΠΎ ваТная дисциплина, которая ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… скриптов ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. βœ… Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ сСйчас: Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ DataFrame с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΊ основному DataFrame с использованиСм . Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ всС строки, Π³Π΄Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Ρ€Π°Π²Π½ΠΎ , ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ индСксу. --- 3. ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ удалСния строк ΠΏΠΎ слоТным условиям Π’ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ Ρ€Π΅Π΄ΠΊΠΎ удаляСм строки Β«Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽΒ», зная ΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ индСкс. Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ датасСты содСрТат тысячи ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ записСй, поэтому ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π° логичСских критСриях. ΠšΠΎΡ€ΠΈ Π¨Π΅Ρ„Π΅Ρ€ дСмонстрируСт, ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ процСсс очистки Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠ»Π΅Π³Π°Π½Ρ‚Π½ΡƒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ. Основная идСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² создании ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°, которая Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ самодокумСнтируСмым ΠΈ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ для ΠΊΠΎΠ»Π»Π΅Π³. Допустим, наша Π·Π°Π΄Π°Ρ‡Π° β€” ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ всСх записСй, Π³Π΄Π΅ фамилия сотрудника совпадаСт с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«DoeΒ». ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΡŒ скобок, ΠΌΡ‹ создаСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ . Π­Ρ‚ΠΎ создаСт ΡΠ΅Ρ€ΠΈΡŽ Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (True/False). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ . ΠœΠ΅Ρ‚ΠΎΠ΄ здСсь критичСски Π²Π°ΠΆΠ΅Π½: ΠΎΠ½ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΊΠΈ всСх строк, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² для удалСния. Вакая связка позволяСт динамичСски ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ датасСт Π² зависимости ΠΎΡ‚ входящих Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠΎΡ€ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π²Π°ΠΆΠ½Ρ‹ΠΉ Π°ΠΊΡ†Π΅Π½Ρ‚ Π½Π° чистотС ΠΊΠΎΠ΄Π°. Новички часто стрСмятся Β«Π·Π°ΠΏΠΈΡ…Π½ΡƒΡ‚ΡŒΒ» всё Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠ΄Π½Ρƒ строку: . Π₯отя это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ быстро прСвращаСтся Π² «спагСтти-ΠΊΠΎΠ΄Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΡ€Π°ΠΉΠ½Π΅ слоТно ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ β€” это стандарт индустрии. Π­Ρ‚ΠΎ позволяСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ условиС, Π½ΠΎ ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сначала ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ строки ΠΏΠΎΠΏΠ°Π»ΠΈ ΠΏΠΎΠ΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, просто Π²Ρ‹Π·Π²Π°Π² ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ . > "I don't really like all of this being bunched up together because I think that it's hard to read and you always want your code to be easy to read by other developers so I would pull the conditional out into its own variable and instead I would say something like this I would say filt for filter is equal to and then I'll just grab our conditional here." Помимо этого, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для удалСния строк ΠΏΠΎ ΠΈΡ… ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌ (labels). Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ ID строки, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΅Π³ΠΎ Π² Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Pandas Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ индСксами (индСксами строк), Π° Π½Π΅ порядковыми Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚. ВсСгда провСряйтС Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ индСкс ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ случайного удалСния Π½Π΅ Ρ‚Π΅Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ постоянным, Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎ , ΠΈΠ½Π°Ρ‡Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ просто Π²Π΅Ρ€Π½Π΅Ρ‚ «срСз» Π±Π΅Π· Π½ΡƒΠΆΠ½Ρ‹Ρ… строк, Π° ваш исходный останСтся Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌ. βœ… Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ сСйчас: Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎ дСсяти сотрудниках (имя, фамилия, ΠΎΡ‚Π΄Π΅Π»). Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для поиска сотрудников ΠΈΠ· ΠΎΡ‚Π΄Π΅Π»Π° 'Sales'. Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΈΡ… Π½Π° экран, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‹Π±ΠΎΡ€Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ эти записи ΠΈΠ· основного Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° . 4. АрхитСктурный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ слиянию DataFrame ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ индСксами Когда ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠΌΠΈ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников, Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ приходится ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ нСсколько DataFrame Π² ΠΎΠ΄ΠΈΠ½. ΠœΠ΅Ρ‚ΠΎΠ΄ Π² Pandas Π±Ρ‹Π» Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя классичСским инструмСнтом для этого, ΠΈ хотя Π² соврСмСнных вСрсиях Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ отдаСтся ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ , ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°Π»ΠΎΠΆΠΈΠ» Π² ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠšΠΎΡ€ΠΈ Π¨Π΅Ρ„Π΅Ρ€, критичСски Π²Π°ΠΆΠ½ΠΎ для понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ индСксы. Главная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡ€ΠΈ объСдинСнии β€” это ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ индСксов ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΉ порядок ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. Если Π²Ρ‹ просто ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ DataFrame ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, Pandas ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² старых вСрсиях), Ссли индСксы Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ столбцы ΠΈΠ΄ΡƒΡ‚ Π² Ρ€Π°Π·Π½ΠΎΠΌ порядкС. АргумСнт здСсь β€” ваш Π»ΡƒΡ‡ΡˆΠΈΠΉ Π΄Ρ€ΡƒΠ³. Он отбрасываСт старыС индСксы присоСдиняСмого DataFrame ΠΈ пСрСстраиваСт ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, начиная с нуля (ΠΈΠ»ΠΈ продолТая Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ индСкс основного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°). Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ошибки ΠΏΡ€ΠΈ дальнСйшСй Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ . ΠŸΡ€ΠΈ слиянии Pandas ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ пытаСтся привСсти столбцы ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌΡƒ порядку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ «совпали». Если Π²Π°ΠΌ это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сортировки ускоряСт процСсс ΠΈ избавляСт ΠΎΡ‚ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅: Pandas β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. Если Π²Ρ‹ присваиваСтС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π²Ρ‹ создаСтС Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² памяти. Π­Ρ‚ΠΎ бСзопасный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ случайной ΠΏΠΎΡ€Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Если ΠΆΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с гигантскими Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ, всСгда Π²Π·Π²Π΅ΡˆΠΈΠ²Π°ΠΉΡ‚Π΅, стоит Π»ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΏΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ эффСктивно ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ структуру "Π½Π° Π»Π΅Ρ‚Ρƒ". > "These have conflicting indexes and they also have columns that are not in the same order so again we're going to want to ignore the indexes when appending these so that they are assigned indexes properly." Для профСссионала Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Β«ΠΊΠ°ΠΊΒ» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π½ΠΎ ΠΈ Β«ΠΏΠΎΡ‡Π΅ΠΌΡƒΒ» ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ строк, Ссли Π² Π½ΠΎΠ²ΠΎΠΌ DataFrame ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π² основном, Pandas автоматичСски Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΈΡ… значСниями (Not a Number). Π­Ρ‚ΠΎ Β«ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ пустоты» позволяСт ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· ΠΏΠΎΠ»ΠΎΠΌΠΊΠΈ структуры. ВсСгда слСдитС Π·Π° Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°Ρ… послС объСдинСния: ΠΈΠ½ΠΎΠ³Π΄Π° появлСниС заставляСт Pandas автоматичСски пСрСвСсти цСлочислСнный Ρ‚ΠΈΠΏ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ (int) Π² Ρ‚ΠΈΠΏ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (float), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ значСния . Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌ эффСктом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ дальнСйшСм Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΈ построСнии ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния. --- 5. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ трансформации строк: ΠΎΡ‚ строкового раздСлСния ΠΊ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Часто Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ… Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ сталкиваСмся с «грязными» строковыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π³Π΄Π΅ нСсколько логичСских Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² ΠΎΠ΄Π½Ρƒ ячСйку. ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠšΠΎΡ€ΠΈ Π¨Π΅Ρ„Π΅Ρ€Π° β€” ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° , содСрТащая имя ΠΈ Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π». Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌΠΈ для Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ»ΠΈ построСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ провСсти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Для этих Ρ†Π΅Π»Π΅ΠΉ Π² Pandas ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ строковый аксСссор Π² сочСтании с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ . Однако ΠΎΠ΄Π½ΠΎΠΉ лишь Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠΈ нСдостаточно: ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Π΅Ρ€Π½Π΅Ρ‚ список, Ρ‡Ρ‚ΠΎ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ для дальнСйшСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π—Π΄Π΅ΡΡŒ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ трансформируСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ разбиСния Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ°. Рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅: Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° со значСниями Π²Ρ€ΠΎΠ΄Π΅ Β«Tony StarkΒ» ΠΈΠ»ΠΈ Β«Steve RogersΒ», Π²Ρ‹Π·ΠΎΠ² Π²Π΅Ρ€Π½Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ DataFrame с двумя ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ, Π³Π΄Π΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Π½Π°, Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Ρ„Π°ΠΌΠΈΠ»ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ мСняСт структуру Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ эти Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ DataFrame, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ Π½Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· список ΠΈΠΌΠ΅Π½ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ: . Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Π·Π° ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ, Ρ‡Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для машинного обучСния ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΉ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠšΠΎΡ€ΠΈ Π¨Π΅Ρ„Π΅Ρ€ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ чистоты ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Когда ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ , ΠΌΡ‹ Π½Π΅ просто мСняСм Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… β€” ΠΌΡ‹ мСняСм Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ пространства ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ². Новички часто Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ , ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΡΠ΅Ρ€ΠΈΡŽ списков, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ арифмСтичСскиС ΠΈΠ»ΠΈ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ВсСгда провСряйтС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‡Π΅Ρ€Π΅Π· , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ структура ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ соотвСтствуСт ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ. Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ: Ссли количСство ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² строках Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ, ΠΌΠΎΠΆΠ΅Ρ‚ вСсти сСбя ΠΈΠ½Π°Ρ‡Π΅, поэтому всСгда стоит ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ. > "The result of that split method is that we get the first name and the last name in a list... if we want to assign these to two different columns then we need to expand this list so that they're actually in two different columns so to do this in pandas we can use the expand argument." Помимо раздСлСния, ΠΌΠ΅Ρ‚ΠΎΠ΄ являСтся ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ для Π±ΠΎΠ»Π΅Π΅ слоТных трансформаций, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ (скаТСм, конвСртация Π²Π°Π»ΡŽΡ‚ ΠΈΠ»ΠΈ расчСт индСксов). Однако Ρ€Π°Π±ΠΎΡ‚Π° со строками Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, поэтому ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС, Ρ‡Π΅ΠΌ с использованиСм лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ВсСгда ΠΎΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ встроСнным строковым ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ, Ссли Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½Π°. βœ… Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ сСйчас: Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ DataFrame с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΎΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "2023-01-01 10:00"). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ Π² качСствС раздСлитСля ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π°Ρ‚Ρƒ ΠΈ врСмя Π½Π° Π΄Π²Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ ΠΈΡ… Π² ΠΈ ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ DataFrame. 6. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ бСзопасности ΠΏΡ€ΠΈ манипуляции Π΄Π°Π½Π½Ρ‹ΠΌΠΈ: Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ vs индСксы ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Pandas Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ доступом ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ (dot notation) ΠΈ Ρ‡Π΅Ρ€Π΅Π· индСксы (square brackets). Π₯отя Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ часто каТСтся, Ρ‡Ρ‚ΠΎ ΠΈ β€” это ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅, это Π½Π΅ Ρ‚Π°ΠΊ. ИспользованиС Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠΉ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ: Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ столбСц с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ , Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Python ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ это ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, Ρ‡Ρ‚ΠΎ часто Π²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌ ΠΈΠ»ΠΈ ошибкам. ΠšΠΎΡ€ΠΈ Π¨Π΅Ρ„Π΅Ρ€ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ‡Π΅Π½: для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ создания, удалСния ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки. Π­Ρ‚ΠΎ стандарт, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Pandas Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ вашСго Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ°, Π° Π½Π΅ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ самого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ . ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ , Π° ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ строк β€” . Π­Ρ‚ΠΎ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π·ΠΎΠ½ отвСтствСнности Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ прСдсказуСмым. Если Π²Ρ‹ случайно ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ , Pandas выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ срСди индСксов строк. Ошибка β€” это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, вСдь ΠΎΠ½Π° ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ silent fail, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡŒ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‹Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ вывСдя Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° экран. Π’Π°ΠΆΠ½Ρ‹ΠΉ нюанс: концСпция Β«view vs copyΒ». Когда Π²Ρ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ подмноТСство Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ удаляСтС Ρ‡Π°ΡΡ‚ΡŒ строк, Pandas часто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ прСдставлСниС (view). Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅, Pandas ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Ρ‚ΡŒ . Π­Ρ‚ΠΎ сигнал Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΊΠΎΠΏΠΈΠ΅ΠΉ, ΠΈ измСнСния Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΊ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Ρƒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… срСзов. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΠΎΠΌ, Π° ΠΊΠΎΠ³Π΄Π° с Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ. > "I do want to point out that you can't use the dot notation when assigning a column like this we have to use the brackets like we did here in order to make these assignments because if you use dot notation then Python is going to think that you're trying to assign an attribute onto the data frame object." Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅: автоматизация очистки Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ (), использованиС для экономии памяти ΠΈ ΠΈΠ·Π±Π΅Π³Π°Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠΉ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ записи β€” это Β«Π·ΠΎΠ»ΠΎΡ‚ΠΎΠΉ стандарт» Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π½Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ любая ошибка индСксации ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ часов Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. βœ… Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ сСйчас: ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ столбСц Π² своСм DataFrame, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ (), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ столбСц Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки (). Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Pandas. ПослС этого ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ столбСц ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, остался Π»ΠΈ ΠΎΠ½ Π² DataFrame. --- 7. Π Π°Π±ΠΎΡ‚Π° с : интСграция Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ стратСгия Когда ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌΠΈ записями ΠΊ объСдинСнию Ρ†Π΅Π»Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠ΅Ρ‚ΠΎΠ΄ становится основным инструмСнтом «склСйки». ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ: Ρƒ вас Π΅ΡΡ‚ΡŒ основной DataFrame с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ сотрудников, ΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ источника (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, API ΠΈΠ»ΠΈ CSV-Ρ„Π°ΠΉΠ»Π°) ΠΏΡ€ΠΈΡˆΠ΅Π» Π½ΠΎΠ²Ρ‹ΠΉ DataFrame с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅Π³. ΠšΠΎΡ€ΠΈ Π¨Π΅Ρ„Π΅Ρ€ Π°ΠΊΡ†Π΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ простоС присоСдинСниС β€” это Π½Π΅ всСгда Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π·Π°Π΄Π°Ρ‡Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ структура индСксов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ. Если ΠΎΠ±Π° Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ° ΠΈΠΌΠ΅ΡŽΡ‚ индСксы, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с 0, Pandas ΠΏΡ€ΠΈ объСдинСнии сохранит ΠΈΡ… Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ создаст хаос ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ индСксации ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ . ИспользованиС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° β€” это Π½Π΅ просто «опция», это ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π³ΠΈΠ³ΠΈΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹Ρ…. Установив Π΅Π³ΠΎ, Π²Ρ‹ ΠΏΡ€ΠΈΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Pandas ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ старыС индСксы ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ (0, 1, 2...). Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки, Ρ‡Ρ‚ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ для прСдотвращСния ошибок ΠΏΡ€ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ: Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ , ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° . Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ DataFrame, Π° Π½Π΅ измСняСт старый. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ явно ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ: . Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого ΠΏΡ€Π°Π²ΠΈΠ»Π° β€” классичСская ошибка Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΈ ΡƒΠ΄ΠΈΠ²Π»ΡΡŽΡ‚ΡΡ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΡ… Π΄Π°Π½Π½Ρ‹Π΅ Β«Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒΒ». > "These have conflicting indexes and they also have columns that are not in the same order so again we're going to want to ignore the indexes when appending these so that they are assigned indexes properly." ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… с Ρ€Π°Π·Π½ΠΎΠΉ структурой ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, Pandas проявляСт Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: Ссли Π² Π΅ΡΡ‚ΡŒ столбСц, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚ Π² , ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½, Π° пустыС ячСйки Π² старых строках Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ . Π­Ρ‚ΠΎ Β«ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ пустоты» ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ остороТности. Если Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†Π΅Π»Ρ‹Π΅ числа Π² ΠΈ строки Π² ), Pandas ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π΄ΠΎ , Ρ‡Ρ‚ΠΎ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ скаТСтся Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ВсСгда провСряйтС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… послС «склСйки» Ρ‡Π΅Ρ€Π΅Π· . βœ… Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ сСйчас: Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π΄Π²Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… DataFrame: (столбцы 'A', 'B') ΠΈ (столбцы 'B', 'C'). ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ . Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ Pandas Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ» ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ значСния для ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. 8. Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ удалСния строк: логичСская Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΡ‚ΠΈΠ² индСксации Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строк β€” это опСрация, которая Π² Ρ€ΡƒΠΊΠ°Ρ… Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° становится инструмСнтом очистки Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠΎΡ€ΠΈ Π¨Π΅Ρ„Π΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π²Π° ΠΏΡƒΡ‚ΠΈ: ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ индСксу (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ) ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π° основС условий. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ β€” это Β«Π²Ρ‹ΡΡˆΠΈΠΉ ΠΏΠΈΠ»ΠΎΡ‚Π°ΠΆΒ». Когда ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строки, Π³Π΄Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «фамилия Ρ€Π°Π²Π½Π° DoeΒ», Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ склонны ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Ρ‡Π΅Ρ€Π΅Π· слоТныС Ρ†ΠΈΠΊΠ»Ρ‹. Однако ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании масок (Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²) ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ этих масок Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ . Π’Π°ΠΆΠ½Ρ‹ΠΉ аспСкт: использованиС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ . ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Β«Π·Π°ΡΠΎΡ€ΡΡ‚ΡŒΒ» Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ условиСм, Π»ΡƒΡ‡ΡˆΠ΅ сначала ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ , Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ . Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ, ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌ ΠΈ бСзопасным. Если Π²Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² условии, Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ запуская ΠΏΡ€ΠΈ этом ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ удалСния. ΠšΠΎΡ€ΠΈ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π΅Ρ‚: «ВсСгда Π΄Π΅Π»Π°ΠΉΡ‚Π΅ свой ΠΊΠΎΠ΄ понятным для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²Β». Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π² Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… β€” это Π·Π°Π»ΠΎΠ³ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚Π΅ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… массивов ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. > "I don't really like all of this being bunched up together because I think that it's hard to read and you always want your code to be easy to read by other developers so I would pull the conditional out into its own variable." ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ индСксы ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ. Если Π²Ρ‹ удаляСтС строки, Pandas оставляСт пропуски Π² Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ индСксов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 0, 1, 3, 4). Если Π²Π°ΠΌ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π° нСпрСрывная нумСрация, послС удалСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ . ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строк β€” это трансформация, которая мСняСт Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ‚Π΅ΠΌ ΠΆΠ΅ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠΎΠΌ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ осознаСтС, ΠΊΠ°ΠΊ измСнилось количСство наблюдСний. ΠŸΠΎΡ‚Π΅Ρ€Ρ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ всСгда осознанным дСйствиСм, Π° Π½Π΅ слСдствиСм ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Π² индСксС. βœ… Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ сСйчас: Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ DataFrame ΠΈΠ· 10 строк. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ маску, Π²Ρ‹Π±Ρ€Π°Π² строки, Π³Π΄Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ 'A' большС 5. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту маску, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ строки ΠΈΠ· DataFrame, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ индСксы. πŸ‹οΈ ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ 1. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ столбСц ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ DataFrame, Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ² Π΅Π³ΠΎ случайными числами. 2. ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠΉΡ‚Π΅ столбцы Π² DataFrame, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² названиях. 3. ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π΄Π²Π° DataFrame, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ лишнюю ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ, ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ появились Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… мСстах. 4. Π£Π΄Π°Π»ΠΈΡ‚Π΅ строку ΠΏΠΎ индСксу 5, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сохранив копию Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ°. 5. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ слоТный Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ»ΠΈ ) ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ всС строки, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ этому ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. 6. РассчитайтС срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Π½Π΅Ρ‘ Π΄Π°Π½Π½Ρ‹Π΅. 7. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ строковых Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ всё Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр, ΠΈ сравнитС это с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ . πŸ”‘ Π˜Ρ‚ΠΎΠ³ΠΈ: 5 дСйствий Π½Π° сСгодня 1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для создания ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΎ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ () для записи. 2. ΠŸΡ€ΠΈ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ , Ссли Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Ρ‹ индСксов. 3. ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ слоТных Π½Π°Π±ΠΎΡ€ΠΎΠ² строк выноситС условия Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ читаСмости. 4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π² для ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠΉ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. 5. ВсСгда Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈ опСрациях Π±Π΅Π· , Ρ‡Ρ‚ΠΎΠ±Ρ‹ измСнСния ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ. πŸ’¬ Π¦ΠΈΡ‚Π°Ρ‚Ρ‹ для вдохновСния "If you use dot notation then Python is going to think that you're trying to assign an attribute onto the data frame object and not a column." "You always want your code to be easy to read by other developers, so I would pull the conditional out into its own variable."