Python Basics: Common String Methods for Data Cleaning and NLP

Welcome back to our Python foundational series! Up to this point, we have focused heavily on numerical data—learning how to assign integers and floats, cast them, and manipulate them using mathematical and logical operators.

However, in the real world of Artificial Intelligence, a massive portion of your data will be text. Whether you are analyzing customer reviews, scraping web pages, or building Large Language Models (LLMs), you must know how to process and clean textual data. This field is known as Natural Language Processing (NLP).

In Python, text is stored as strings. In this session, we will explore String Methods—built-in functions that allow you to analyze, clean, and manipulate text data efficiently.

Creating Strings

Before manipulating text, let’s briefly review how to create strings. Python allows you to use single quotes, double quotes, or even triple quotes (which are exceptionally useful for multi-line text or document strings).

# Single and double quotes
name = 'Ali'
greeting = "Hello, Python!"

# Triple quotes for multi-line strings
message = '''This is a
multi-line string'''

Essential String Methods

Let’s dive into the most common and powerful string methods you will use daily as a data scientist.

1. len() - Finding the Length of a String

While technically a built-in Python function rather than a string method, len() is indispensable. It returns the total number of characters in a string, including spaces and punctuation.

text = "Hello, World!"
print(len(text))  # Output: 13

2. .upper() and .lower() - Converting Case

In NLP, “Apple” and “apple” are treated as two entirely different words by a computer. To normalize text before feeding it into a machine learning model, we standardly convert all text to lowercase.

text = "Hello, Python!"
print(text.upper())  # Output: HELLO, PYTHON!
print(text.lower())  # Output: hello, python!

3. .strip() - Removing Whitespace

When importing data from CSV files or scraping the web, text often comes with accidental leading or trailing spaces. .strip() removes these hidden spaces, ensuring your data is clean.

text = "   Hello, Python!   "
print(text.strip())  # Output: "Hello, Python!"

4. .replace(old, new) - Replacing Substrings

This method is perfect for data sanitization, such as removing unwanted characters or replacing specific terms across a massive text corpus.

text = "Hello, Python!"
print(text.replace("Python", "World"))  # Output: Hello, World!

5. .split(delimiter) - Splitting a String (Tokenization)

This is arguably the most important string method for NLP. It splits a single string into a list of smaller strings (tokens) based on a specified delimiter. If no delimiter is provided, it splits by spaces.

text = "apple,banana,cherry"
fruits = text.split(",")
print(fruits)  # Output: ['apple', 'banana', 'cherry']

6. .join(iterable) - Joining a List into a String

The exact opposite of .split(). If you have a list of words and want to combine them back into a single sentence, you use .join(). The string you call the method on becomes the “glue” between the items.

fruits = ['apple', 'banana', 'cherry']
text = ", ".join(fruits)
print(text)  # Output: apple, banana, cherry

7. .find(substring) - Finding a Substring

Returns the index (the numerical position) of the first occurrence of a substring. Note: In Python, counting starts at 0. If the substring is not found, it returns -1.

text = "Hello, Python!"
print(text.find("Python"))  # Output: 7

8. .count(substring) - Counting Occurrences

Counts exactly how many times a specific substring appears within a string. This is useful for basic frequency analysis.

text = "Hello, Python! Python is fun."
print(text.count("Python"))  # Output: 2

9. .startswith(prefix) and .endswith(suffix)

These methods return a Boolean (True or False). They are highly useful for filtering datasets, such as checking if a web link ends with .com or .org.

text = "Hello, Python!"
print(text.startswith("Hello"))  # Output: True
print(text.endswith("!"))        # Output: True

10. .capitalize() and .title()

Used primarily for formatting outputs and reports to make them grammatically correct and presentable to users.

  • .capitalize(): Capitalizes only the very first letter of the string.
  • .title(): Capitalizes the first letter of every word in the string.
text = "hello, python!"
print(text.capitalize())  # Output: Hello, python!
print(text.title())       # Output: Hello, Python!

11. .isalnum(), .isalpha(), .isdigit()

These methods evaluate the contents of a string and return a Boolean. They are crucial for validating data (e.g., checking if a user entered a valid numeric age).

  • .isalnum(): Checks if all characters are alphanumeric (letters and numbers only, no spaces or punctuation).
  • .isalpha(): Checks if all characters are alphabetic (letters only).
  • .isdigit(): Checks if all characters are numbers (digits only).
text = "Python3"
print(text.isalnum())  # Output: True
print(text.isalpha())  # Output: False
print(text.isdigit())  # Output: False

Summary of Common String Methods

For quick reference, here is a cheat sheet of the string methods we covered today:

Method Description Example
len(text) Returns the length of the string len("Python") ➞ 6
text.upper() Converts string to uppercase "python".upper() ➞ PYTHON
text.lower() Converts string to lowercase "PYTHON".lower() ➞ python
text.strip() Removes whitespace from the beginning/end " hello ".strip() ➞ hello
text.replace(a, b) Replaces substring a with b "Hello".replace("e", "a") ➞ Hallo
text.split(delim) Splits string by delimiter into a list "a,b,c".split(",") ➞ ['a', 'b', 'c']
",".join(list) Joins list elements into a single string ",".join(['a', 'b']) ➞ a,b
text.find(sub) Returns index of first occurrence of substring "hello".find("e") ➞ 1
text.count(sub) Counts occurrences of substring "hello".count("l") ➞ 2
text.startswith(a) Checks if string starts with substring a "hello".startswith("he") ➞ True
text.endswith(a) Checks if string ends with substring a "hello".endswith("lo") ➞ True

Conclusion

Mastering string manipulation is non-negotiable for anyone stepping into Data Science. The majority of the world’s data exists as unstructured text. By utilizing these string methods, you now have the tools to clean, standardize, and extract meaning from raw information.

Keep practicing these methods, as they will appear continuously when we begin using advanced data libraries like Pandas. Happy coding!


Notebook

Open In Colab

📄 View or Download the Python Notebook




Enjoy Reading This Article?

Here are some more articles you might like to read next: