Write a program in Python to remove the elements in a series, if it contains exactly two spaces

Sometimes you need to filter out pandas Series elements based on specific criteria. This tutorial shows how to remove elements that contain exactly two spaces using different approaches.

Sample Data

Let's start with a pandas Series containing text data ?

import pandas as pd

text_data = ["This is pandas", "python script", "pandas series"]
data = pd.Series(text_data)
print("Original Series:")
print(data)
Original Series:
0    This is pandas
1     python script
2    pandas series
dtype: object

Method 1: Using String count() Method

The most straightforward approach uses the built-in count() method to filter elements ?

import pandas as pd

text_data = ["This is pandas", "python script", "pandas series"]
data = pd.Series(text_data)

# Remove elements with exactly 2 spaces
filtered_data = data[data.str.count(' ') != 2]
print("After removing elements with exactly 2 spaces:")
print(filtered_data)
After removing elements with exactly 2 spaces:
1     python script
2    pandas series
dtype: object

Method 2: Using Regular Expressions with filter()

You can also use regular expressions with Python's filter() function ?

import pandas as pd
import re

text_data = ["This is pandas", "python script", "pandas series"]
data = pd.Series(text_data)

# Filter using lambda and regex
result = pd.Series(filter(lambda x: len(re.findall(r" ", x)) != 2, data))
filtered_data = data[data.isin(result)]
print("Using regex filter:")
print(filtered_data)
Using regex filter:
1     python script
2    pandas series
dtype: object

Method 3: Using Loop with pop()

For educational purposes, here's how to remove elements by iterating and using pop() ?

import pandas as pd

text_data = ["This is pandas", "python script", "pandas series"]
data = pd.Series(text_data)

# Create a copy to avoid modification during iteration
indices_to_remove = []
for i, text in data.items():
    if text.count(' ') == 2:
        indices_to_remove.append(i)

# Remove the indices
for idx in reversed(indices_to_remove):
    data = data.drop(idx)

print("Using loop method:")
print(data)
Using loop method:
1     python script
2    pandas series
dtype: object

Comparison

Method Performance Readability Best For
String count() Fast High Simple string operations
Regex filter() Moderate Moderate Complex pattern matching
Loop with pop() Slow Low Learning purposes

Conclusion

Use data.str.count(' ') != 2 for the most efficient and readable solution. The regex approach offers more flexibility for complex patterns, while the loop method helps understand the underlying logic.

Updated on: 2026-03-25T15:50:37+05:30

281 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements