Pandas Reindex

Pandas Reindex



„В „пандите“ можем да съхраняваме много информация в таблична форма, която е известна още като DataFrame. „Пандите“ ни улесняват с метода „DataFrame()“ за конструиране на DataFrame. DataFrame съдържа индекси и ние също можем да променяме индексите на DataFrame, като използваме функциите „pandas“. Методът, който използваме за повторно индексиране на DataFrame, е методът „reindex()“. Този метод помага при промяна на стойностите на индекса на реда, както и стойностите на индекса на колоните. Като използваме този метод, можем да променим индекса по подразбиране на DataFrame, а също така можем да променим индекса, който задаваме, докато създаваме DataFrame. Ще използваме метода „reindex()“ в нашите примери за „pandas“ в този урок и ще обясним тази концепция в дълбочина тук.“

Пример # 01

Инструментът „Spyder“ ни помага да разработим кода „pandas“ тук в този урок и ние започваме нашия код с ключовата дума „import“, която ще помогне при импортирането на функцията „pandas“. Поставяме „pandas като pd“, след като напишем „import“. След това създаваме DataFrame, като напишем „pd.DataFrame()“. Пишем това „pd“ тук, защото „DataFrame()“ е методът на „pandas“. „value_df“ е името на променливата, в която е записан DataFrame. Добавяме „RandomName“, което е името на колоната, а „RandomName“ съдържа „Thomas, Oscar, Lilly, Rowan, John, Bromley, Peter, Alexander, and Samuel“.







След това имаме „Стойност_1“, в която сме вмъкнали „16, 29, 24, 35, 44, 50, 69, 74 и 88“. След това идва „Стойност_2“ и сме добавили „25, 38, 42, 56, 54, 65, 78, 89 и 99“. След това идва „Value_3“ и ние поставяме „36, 48, 52, 69, 74, 75, 87, 91 и 69“ в него. Колоната „Value_4“ присъства след това, където сме вмъкнали „52, 64, 72, 88, 82, 95, 97, 21 и 39“. Последната колона е колоната „Value_5“ тук и в тази колона стойностите, които сме добавили, са „66, 78, 82, 99, 34, 45, 57, 61 и 89“. След това използваме функцията “print()”, в която се добавя “Values_df”. Ще се отпечата на терминала.




След натискане на „Shift+Enter“ можем лесно да получим резултата от нашите кодове в приложението „Spyder“. Тук този код връща DataFrame с индекса по подразбиране. Сега ще приложим метода “reindex()” за повторно индексиране на този DataFrame в “pandas”.




Функцията 'reindex()' се използва тук за повторно индексиране на стойността на индекса на реда. В горния DataFrame можете да видите, че стойностите на индекса по подразбиране на реда се показват и сега прилагаме метода „reindex()“ за повторно индексиране на индексите на тези редове. Поставяме името на DataFrame и след това метода „reindex()“, в който поставяме стойностите на индекса, които искаме да добавим към горния DataFrame. Поставяме „ind_A, ind_B, ind_C, ind_D, ind_E, ind_F, ind_G, ind_H и ind_I“ във функцията „reindex()“. И така, индексите на тези редове ще бъдат актуализирани в DataFrame, когато изпълним този код.






Стойностите на индекса на реда се показват в този резултат и можете да забележите, че стойностите на DataFrame не се показват тук и се появяват стойностите „NaN“. Това е така, защото новите стойности на индекса не съвпадат с предишните стойности на индекса на DataFrame. Когато новият индекс и старият индекс не съвпадат, тогава там се показва „Nan“. Тези „NaN“ стойности се появяват по подразбиране, когато променим индекса и той не съответства на предишния индекс.



Пример # 02

Сега променяме стойностите на индекса на колоната на „Value_df“, който преди това създадохме в пример 1. След като отпечатахме „Value_df“, поставихме променливата „column“ и добавихме някои стойности към нея. Добавяме „a_1, b_1, c_1, d_1 и e_1“. Сега искаме да коригираме тези стойности като индекс на колоните, така че за това използваме метода „reindex()“ и поставяме името на променливата „колона“, в която се съхраняват новите стойности на индекса на колона и също задайте „ос“ на „колони“, така че ще актуализира индекса на оста на колоната. Поставяме метода „reindex()“ в „print()“, така че той също ще се рендира на терминала.


Тъй като използвахме метода „reindex()“, стойностите на индекса на колоната, които присъстват в първата DataFrame, се актуализират и нови стойности се добавят в актуализираната DataFrame. Можете също така да отбележите, че всички стойности на DataFrame се преобразуват в „NaN“, тъй като и двете индексни стойности на колоните са различни.

Пример # 03

„Programming_data“ в този код съдържа „P_Languages“, където сме добавили „JavaScript, CSS, Web Engineering, OOP, C#, AI, Java и JavaScript“. След това имаме „Часове“, в които поставяме „4_hrs, 2_hrs, 3_hrs, 7_hrs, 6_hrs, 5_hrs, 8_hrs и 6_hrs“. След това се въвежда „P_Code“ и вмъкваме „11523, 12423, 12321, 11456, 11454, 12267, 13106 и 14123“. Добавяме променливата „p_index“ и поставяме „Pro_A, Pro_B, Pro_C, Pro_D, Pro_E, Pro_F, Pro_G и Pro_H“.

Тези стойности ще се използват като индексни стойности на редовете. Променяме „Programming_data“ в „Programming_df“ DataFrame. Ние също добавяме „p_index“ към този DataFrame, като използваме метода „index“. Поставяме “Programming_df” и след това метода “index” и присвояваме “p_index” на това. Сега горните стойности на индекса се добавят като стойности на индекса на редовете към DataFrame. Отпечатваме и „Programming_df“.

След това добавяме някои нови стойности на индекса в променливата „new_index“ и това са „P_1, P_2, P_3, P_4, P_5, P_6, P_7 и P_8“. Тъй като искаме да актуализираме стойностите на индекса на редовете, използваме метода „reindex()“ и поставяме „new_index“ като параметър на тази функция и също така съхраняваме актуализираната DataFrame в „newProgramming_df“ и поставяме „newProgramming_df“ в „ print()” за показване.


Стойностите на индекса се актуализират и можем също така да кажем, че сме преиндексирали DataFrame, който сме създали. Всички стойности на DataFrame също се преобразуват в „NaN“, тъй като и двете стойности на индекса са различни.

Пример # 04

В момента променяме стойностите на индекса на „Programming_df“ на колоните, които преди това разработихме в пример 3. Поставяме променливата „колона“ и вмъкваме нови стойности в нея. „P_Code, P_Languages, Hours и New“ се добавят към променливата „column“. След това отново използваме метода “reindex()”, в който задаваме променливата “column”, която ще актуализира стойностите на предишния индекс на колона и ще добави тези нови стойности на индекс на колона към DataFrame.

Тук можете да отбележите, че новите стойности, които добавихме в „колона“, са същите като тези, които добавихме в горния DataFrame, но последователността е различна, така че ще промени последователността на колоните и ще коригира всички колони, докато ние споменат в променливата „колона“. Освен това добавяме още една стойност на индекс, която не присъства в горната DataFrame, която е „Нова“ тук, така че стойностите „NaN“ ще се появят в тази колона.


Последователността на колоните се променя тук и всички стойности се показват така, както присъстват в колоните на оригиналния DataFrame, а колоната „Нова“ в актуализирания DataFrame съдържа всички стойности „NaN“, тъй като тази колона не присъства в оригиналния DataFrame.

Заключение

Представихме този урок, който ни помага да разберем в детайли понятието „pandas reindex“. Обсъдихме как можем да преиндексираме колона на DataFrame, както и стойностите на индекса на реда. Обяснихме, че функцията “reindex()” на “pandas” се използва за това. Направихме различни примери, в които сме променили стойностите на индекса на редовете на DataFrame, а също и стойностите на индекса на индекса на колоната на DataFrame. Изобразихме резултатите от всички кодове, които направихме тук в този урок, и ги обяснихме в дълбочина.