{count, plural, one {Program} other {Program}}
Metin kırpma, özellikle veri bilimi projelerinin veri temizleme ve hazırlık aşamalarında, Python'da metin verileriyle çalışırken temel bir görevdir. Kırpma, dizgelerin başından ve sonundan boşluk gibi istenmeyen karakterleri kaldırarak verilerinizi daha tutarlı ve analize hazır hale getirir.
Bu öğreticide, Python'da dizgeleri kırpmak için üç temel yöntemi—.strip(), .lstrip() ve .rstrip()—adım adım göstereceğim ve gerçek dünya senaryolarında esnekliklerini ve faydalarını ortaya koymak için belirli kullanım örneklerini ele alacağım.
Python'da Bir Dizgeyi Kırpmanın 3 Yöntemi
Python, dizgeleri kırpmak için yerleşik yöntemler sunar; bu da metinsel verileri temizlemeyi ve ön işlemden geçirmeyi kolaylaştırır. Bu yöntemler şunları içerir
.strip(): Başta ve sonda yer alan karakterleri (varsayılan olarak boşlukları) kaldırır..lstrip(): Dizgenin sol tarafından (varsayılan olarak boşluk) baştaki karakterleri kaldırır..rstrip(): Dizgenin sağ tarafından (varsayılan olarak boşluk) sondaki karakterleri kaldırır.
Bu yöntemleri anlamak, metinle ilgili herhangi bir veri bilimi görevi için kritik olan metin işleme ve hazırlama süreçlerini verimli hale getirir.
1. Python'da .strip() kullanarak dizgelerden baştaki ve sondaki boşlukları kaldırma
.strip() yöntemi, bir dizgenin hem başındaki hem de sonundaki karakterleri kaldırmak için tasarlanmıştır. En yaygın kullanım alanı boşlukları temizlemektir. Aşağıda, " I love learning Python! " dizgesi üzerinde kullanıldığında bir örnek verilmiştir.
text = " I love learning Python! "
trimmed_text = text.strip()
print(trimmed_text) # Output: "I love learning Python!"
Bu yöntem, başında ve sonunda farklı miktarlarda boşluk bulunan dizgeleri standartlaştırmak için özellikle yararlıdır.
2. Python'da .lstrip() kullanarak dizgelerden baştaki boşlukları kaldırma
.lstrip() yöntemi, bir dizgenin sol tarafını hedef alarak baştaki karakterleri kaldırır. Varsayılan olarak boşlukları temizler, ancak belirli karakterleri kaldıracak şekilde de yönlendirilebilir. İşte önceki örnekteki " I love learning Python! " dizgesi üzerinde .lstrip() yönteminin uygulanması:
text = " I love learning Python! "
left_trimmed_text = text.lstrip()
print(left_trimmed_text) # Output: "I love learning Python! "
.lstrip(), isim listeleri veya kategorik veriler gibi, istenmeyen boşluklar veya karakterlerle başlayan dizgeleri temizlemeniz gerektiğinde kullanışlıdır.
3. Python'da .rstrip() kullanarak dizgelerden sondaki boşlukları kaldırma
.rstrip() yöntemi, bir dizgenin sağ tarafından sondaki karakterleri kaldırarak .lstrip()'i tamamlar. Hangi karakterlerin kaldırılacağını belirtme esnekliğini paylaşır. Aşağıda aynı örneğe uygulanmıştır:
text = " I love learning Python! "
right_trimmed_text = text.rstrip()
print(right_trimmed_text) # Output: " I love learning Python!"
Sonda istenmeyen karakterler veya boşluklar—örneğin, sonda gelen noktalama işaretleri veya açıklamalar—olduğunda .rstrip()'i kullanın.
Python'da Bir Dizgeden Belirli Karakterleri Kaldırma
Python'un metin kırpma yöntemleri, dizgelerin başından ve sonundan hangi karakterlerin kaldırılacağını belirtmenize olanak tanır. Bu işlevsellik, .strip(), .lstrip() ve .rstrip() yöntemlerine bir esneklik katmanı ekleyerek daha hedefli metin temizleme işlemleri yapmanızı sağlar.
Ancak örneklerimizde göreceğimiz gibi, bu yöntemlerin doğal sınırlamalarını kabul etmek önemlidir: Dizgelerin ortasından karakterleri kaldıramazlar veya daha karmaşık, desen tabanlı kaldırmaları gerçekleştiremezler. Bu tür ileri düzey ihtiyaçlar için düzenli ifadeler (regex) daha sağlam bir çözüm sunar.
Python'da .strip() kullanarak belirli karakterleri kaldırma
Önce .strip() yöntemiyle başlayalım. .strip() yöntemi, yalnızca boşlukları değil, aynı zamanda bir dizgenin her iki ucundan belirli karakterleri kaldıracak şekilde de özelleştirilebilir. İşte bir örnek:
text = "!!!I love learning Python!!!"
specific_char_trimmed = text.strip('!')
print(specific_char_trimmed) # Output: "I love learning Python"
Şimdi dizgemizin aslında "xxxyyy I love learning Python xxxyyy" olduğunu hayal edelim. ”xxx” ve ”yyy” dizgenin hem başında hem de sonunda yer aldığından, kaldırılacak karakter olarak ’xy’ belirtildiğinde her ikisini de kaldırmak mümkündür. İşte uygulaması!
text = "xxxyyy I love learning Python xxxyyy"
specific_chars_trimmed = text.strip('xy')
print(specific_chars_trimmed) # Output: " I love learning Python "
Daha önce belirtildiği gibi, .strip()'in dizgenin ortasından karakterleri kaldıramayacağını anlamak çok önemlidir. Örneğin, kırptığımız metin "!!!I love learning!!! Python!!!" ise—yukarıdaki işlemin çıktısı ”I love learning!!! Python” olacaktır. Daha karmaşık kaldırma işlemleri için bu öğreticide anlatılan strip yöntemleri yerine düzenli ifadelere bakmak en iyisidir.
.lstrip() ve .rstrip() kullanarak Python'da belirli karakterleri kaldırma
Aynısı .lstrip() ve .rstrip() yöntemleri için de geçerlidir. Aşağıda sırasıyla .lstrip() ve .rstrip() içinde belirli baştaki ve sondaki karakterleri kaldırmaya yönelik örnekler yer almaktadır:
text = "!!!I love learning Python!!!"
left_char_trimmed = text.lstrip('!')
print(left_char_trimmed) # Output: "I love learning Python!!!"
right_char_trimmed = text.rstrip('!')
print(right_char_trimmed) # Output: "!!!I love learning Python"
Ayrıca, birden çok karakteri kaldırma tekniği .lstrip() ve .rstrip() için de uygulanabilir.
text = "xxxyyy I love learning Python xxxyyy"
left_chars_trimmed = text.lstrip('xy')
print(left_chars_trimmed) # Output: " I love learning Python xxxyyy"
right_chars_trimmed = text.rstrip('xy')
print(right_chars_trimmed) # Output: "xxxyyy I love learning Python"
Python 3.9'daki Yeni Metin Kırpma Yöntemleri
Python 3.9, bilinen önekleri veya sonekleri açıkça kaldıran str.removeprefix() ve str.removesuffix() yöntemlerini tanıttı.
removeprefix() kullanarak bir öneki kaldırma
text = "Python_is_fun"
trimmed_text = text.removeprefix("Python_")
print(trimmed_text) # Output: "is_fun"
removesuffix() kullanarak bir soneki kaldırma
text = "data_cleaning.csv"
trimmed_text = text.removesuffix(".csv")
print(trimmed_text) # Output: "data_cleaning"
Dizge Kırpma İçin Performans Hususları
Büyük veri kümeleriyle çalışırken dizgeleri verimli bir şekilde kırpmak önemlidir. .strip(), .lstrip() ve .rstrip() O(n) zaman karmaşıklığında çalışır. Ancak çok büyük veri kümeleri için, Pandas'ta vektörize işlemler kullanmak daha verimli olabilir:
import pandas as pd
df = pd.DataFrame({"text": [" Data Science ", " Machine Learning "]})
df["cleaned_text"] = df["text"].str.strip()
print(df)
Sonuç
Dizge kırpma ve düzenlemeyi anlamak etkili Python programlaması için gereklidir. .strip(), .lstrip() ve .rstrip() yöntemleri temel ihtiyaçları karşılarken, daha karmaşık senaryolarla başa çıkmak için düzenli ifadelere dalmak gerekebilir. Daha fazla öğrenmek için düzenli ifadeler üzerine olan öğreticimizi inceleyebilir veya daha iyisi, DataCamp’in Python ile Doğal Dil İşleme Yetenek Yoluna başlayabilirsiniz.
Adel, Veri Bilimi eğitmeni, konuşmacı ve DataCamp’te Medya Başkan Yardımcısıdır. Adel, veri analizi, makine öğrenimi ve veri mühendisliği üzerine çeşitli kurslar ve canlı eğitimler yayınlamıştır. Kuruluşlar genelinde veri becerilerini ve veri okuryazarlığını yaygınlaştırmaya ve teknolojinin toplumla kesişimine tutkuyla bağlıdır. Veri Bilimi ve İş Analitiği alanında yüksek lisans derecesine sahiptir. Boş zamanlarında onu kedisi Louis ile vakit geçirirken bulabilirsiniz.
SSS
Bir dizgeden sayısal karakterleri kaldırmak için .strip(), .lstrip() veya .rstrip() kullanabilir miyim?
Evet, kaldırılacak hedef olarak sayısal karakterleri belirtebilirsiniz. Örneğin:
text = "12345Python12345"
trimmed_text = text.strip('12345')
print(trimmed_text) # Output: "Python".strip(), .lstrip() ve .rstrip() sekmeler veya satır sonları gibi karışık boşluk karakterleri içeren dizgeleri nasıl işler?
Varsayılan olarak, bu yöntemler boşluğun tüm türlerini kaldırır; buna boşluklar, sekmeler (\t) ve satır sonları (\n) dahildir. Örneğin:
text = "\t\n Python Programming \n\t"
trimmed_text = text.strip()
print(trimmed_text) # Output: "Python Programming"Boş bir dizge üzerinde .strip(), .lstrip() veya .rstrip() çağırırsam ne olur?
Bu yöntemleri boş bir dizge üzerinde çağırırsanız, hata vermeden boş bir dizge döndürürler. Örneğin:
text = ""
trimmed_text = text.strip()
print(trimmed_text) # Output: ""
