English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
مثال على عمليات معالجة النصوص في 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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” يعني عدم وجود تطابق في العناصر.
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
القائمة الفارغة ([]) تعني عدم وجود تطابق في العناصر
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
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
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
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