English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

معالجة النصوص في Pandas

مثال على عمليات معالجة النصوص في Pandas

في هذا الفصل، سنستخدم Series / Index الأساسية لتعريف عمليات النصوص. في الفصول القادمة، سنتعلم كيفية تطبيق هذه functions النصية على DataFrame.

تقدم Pandas مجموعة من functions النصية التي يمكن استخدامها بسهولة للتعامل مع بيانات النصوص. والأهم من ذلك، تتجاهل (أو استثني) القيم المفقودة / NaN.

يمكن استخدام معظم هذه الطرق لـ Python string functions (انظر إلى:) https://docs.python.org/3/library/stdtypes.html#string-methods) لذا، يتم تحويل Series إلى String، ثم تنفيذ العملية.

لنرى كيف يتم تنفيذ كل عملية.

طريقةشرح
lower()تحويل النص إلى حروف صغيرة.
upper()تحويل النص إلى حروف كبيرة.
len()حساب طول النص.
strip()يساعد في إزالة الفراغات من كل نص في العنصر أو المكونات الإندكس من الجانبين (بما في ذلك الأنماط المختلفة).
split(' ')يُقسم كل نص باستخدام النمط المحدد.
cat(sep=' ')/td>يرتبط العنصر أو المكونات الإندكس باستخدام حرف التفريق المحدد.
get_dummies()يعود DataFrame يحتوي على قيمة تشفير واحدة.
contains(pattern)إذا كان النص الفرعي يحتوي على العنصر، فإنه يعود بقيمة True للكلية، وإلا يعود False.
replace(a,b)استبدال القيمة a بالقيمة b.
repeat(value)تكرار كل عنصر المحدد.
count(pattern)عدد مرات ظهور النمط في كل عنصر.
startswith(pattern)إذا بدأت كل عنصر في "السلسلة / المؤشر" بالنمط، فعدد الحقيقي.
endswith(pattern)إذا انتهت كل عنصر في "السلسلة / المؤشر" بالنمط، فعدد الحقيقي.
find(pattern)عدد الموضع الأول للنمط.
findall(pattern)عدد جميع الأنماط التي تظهر.
swapcaseتبديل الحروف الكبيرة والصغيرة
islower()<تحقق من أن كل حرف في كل سلسلة من "السلسلة / المؤشر" هو صغير. عودة قيمة بولية
isupper()تحقق من أن كل حرف في كل سلسلة من "السلسلة / المؤشر" هو كبير. عودة قيمة بولية.
isnumeric()تحقق من أن كل حرف في كل سلسلة من "السلسلة / المؤشر" هو رقم. عودة قيمة بولية.

نحن نقوم بإنشاء Series لرؤية كيف تعمل جميع الوظائف المذكورة أعلاه.

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
 print s

نتيجة التنفيذ:

 0     Tom
 1     William Rick
 2     John
 3     Alber@t
 4 NaN
 5 1234
 6 Steve Smith
 dtype: object

lower()

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
 print s.str.lower()

نتيجة التنفيذ:

 0 tom
 1 william rick
 2 john
 3 alber@t
 4 NaN
 5 1234
 6 steve smith
 dtype: object

upper()

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
 print s.str.upper()

نتيجة التنفيذ:

 0 TOM
 1 WILLIAM RICK
 2 JOHN
 3 ALBER@T
 4 NaN
 5 1234
 6 STEVE SMITH
 dtype: object

len()

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t', np.nan, '1234','SteveSmith'])
 print s.str.len()

نتيجة التنفيذ:

 0 3.0
 1 12.0
 2 4.0
 3 7.0
 4 NaN
 5 4.0
 6 10.0
 dtype: float64

strip()

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s
 print ("After Stripping:")
 print s.str.strip()

نتيجة التنفيذ:

 0     Tom
 1     William Rick
 2     John
 3     Alber@t
 dtype: object
 After Stripping:
 0     Tom
 1     William Rick
 2     John
 3     Alber@t
 dtype: object

split(pattern)

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s
 print ("Split Pattern:")
 print s.str.split(' ')

نتيجة التنفيذ:

 0     Tom
 1     William Rick
 2     John
 3     Alber@t
 dtype: object
 Split Pattern:
 0 [Tom, , , , , , , , , , ]
 1 [, , , , , William, Rick]
 2 [John]
 3 [Alber@t]
 dtype: object

cat(sep=pattern)

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s.str.cat(sep='_')

نتيجة التنفيذ:

   Tom _ William Rick John Alber@t

get_dummies()

 import pandas as pd
 import numpy as np
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s.str.get_dummies()

نتيجة التنفيذ:

   William Rick         Alber@t         John         Tom
0         0         0         0         1
1         1         0         0         0
2         0         0         1         0
3         0         1         0         0

contains ()

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s.str.contains(' ')

نتيجة التنفيذ:

 0     True
 1     True
 2  False
 3  False
 dtype: bool

replace(a,b)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s
 print ("After replacing @ with $:")
 print s.str.replace('@',')
 )

نتيجة التنفيذ:

 0     Tom
 1     William Rick
 2     John
 3     Alber@t
 dtype: object
 After replacing @ with $:
 0     Tom
 1     William Rick
 2     John
 3     Alber$t
 dtype: object

repeat(value)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s.str.repeat(2)

نتيجة التنفيذ:

0       Tom       Tom
1       William Rick       William Rick
2       JohnJohn
3       Alber@tAlber@t
dtype: object

count(pattern)

 import pandas as pd
  
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print ("每个字符串中的“ m”数:")
 print s.str.count('m')

نتيجة التنفيذ:

 每个字符串中的“ m”数:
 0 1
 1 1
 2 0
 3 0

startswith(pattern)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print ("Strings that start with 'T':")
 print s.str. startswith ('T')

نتيجة التنفيذ:

 0     True
 1  False
 2  False
 3  False
 dtype: bool

endswith(pattern)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print ("Strings that end with 't':")
 print s.str.endswith('t')

نتيجة التنفيذ:

 Strings that end with 't':
 0  False
 1  False
 2  False
 3     True
 dtype: bool

find(pattern)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s.str.find('e')

نتيجة التنفيذ:

 0 -1
 1 -1
 2 -1
 3 3
 dtype: int64

“ -1” يعني عدم وجود تطابق في العناصر.

findall(pattern)

 import pandas as pd
 s = pd.Series(['Tom ', ' William Rick', 'John', 'Alber@t'])
 print s.str.findall('e')

نتيجة التنفيذ:

 0 []
 1 []
 2 []
 3 [e]
 dtype: object

القائمة الفارغة ([]) تعني عدم وجود تطابق في العناصر

swapcase()

 import pandas as pd
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
 print s.str.swapcase()

نتيجة التنفيذ:

 0 tOM
 1 wILLIAM rICK
 2 jOHN
 3 aLBER@T
 dtype: object

islower()

 import pandas as pd
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
 print s.str.islower()

نتيجة التنفيذ:

 0  False
 1  False
 2  False
 3  False
 dtype: bool

isupper()

 import pandas as pd
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
 print s.str.isupper()

نتيجة التنفيذ:

 0  False
 1  False
 2  False
 3  False
 dtype: bool

isnumeric()

 import pandas as pd
 s = pd.Series(['Tom', 'William Rick', 'John', 'Alber@t'])
 print s.str.isnumeric()

نتيجة التنفيذ:

 0  False
 1  False
 2  False
 3  False
 dtype: bool