Трябва да представим всеки бит от данни в числени стойности, които да бъдат обработени и анализирани от модели за машинно обучение и дълбоко обучение. Низовете обаче обикновено не идват в хубав и чист формат и изискват много предварителна обработка.

Pandas предоставя множество функции и методи за обработка на текстови данни. В тази публикация ще се фокусираме върху типовете данни за низове, а не върху операциите с низове. Използването на подходящи типове данни е първата стъпка, за да се възползвате максимално от Pandas. Понастоящем има два типа данни за текстови данни, objectи StringDtype.

Преди pandas 1.0 само типът данни „обект“ се използваше за съхраняване на низове, което причинява някои недостатъци, тъй като данните, които не са низ, също могат да се съхраняват с помощта на тип данни „обект“. Pandas 1.0 въвежда нов тип данни, специфичен за низови данни, който е StringDtype. Към момента все още можем да използваме object или StringDtype за съхраняване на низове, но в бъдеще може да се наложи да използваме само StringDtype.

Едно важно нещо, което трябва да се отбележи тук е, че типът данни на обекта все още е типът данни по подразбиране за низове. За да използваме StringDtype, трябва изрично да го посочим.

Можем да предадем аргумент „string“ или pd.StringDtype() към параметър dtype, за да изберем тип данни за низ.

Можем също да преобразуваме от тип данни „обект“ в „низ“ с помощта на функцията astype:

Въпреки че типът по подразбиране е „обект“, се препоръчва да се използва „низ“ по няколко причини.

  • Обектният тип данни има по-широк обхват и позволява да се съхранява почти всичко. По този начин, дори ако имаме не-низове на място, което се предполага, че е низ, не получаваме никаква грешка.

  • Винаги е по-добре да имате специален тип данни. Например, ако се опитаме да използваме примера по-горе с тип данни „низ“, получаваме TypeError.

  • Наличието на специален тип данни позволява специфични за типа данни операции. Например, не можем да използваме select_dtypes, за да избираме само текстови колони, ако се използва тип данни „обект“. Select_dtypes(include=”object”) ще върне всяка колона с обектен тип данни. От друга страна, ако използваме тип данни „низ“ за текстови данни, select_dtypes(include=”string”) ще даде точно това, от което се нуждаем.

Типът данни „низ“ не превъзхожда „обект“ по отношение на производителността към момента. Въпреки това се очаква с бъдещи подобрения производителността на типа данни „низ“ да се повиши и потреблението на памет да се намали. По този начин вече трябва да използваме „низ“ вместо „обект“ за текстови данни.

Благодаря ви, че прочетохте. Моля, уведомете ме, ако имате отзиви.