Counting Specific Keywords In A Dataframe
I have a dataframe as such:     A 0   Please wait outside of the house 1   A glittering gem is not enough. 2   The memory we used to share is no longer coher... 3   She only paints
Solution 1:
I assumed that you're looking for case-insensitive matches.
import pandas as pd
df = pd.DataFrame({
    'A': [
        'Please wait outside of the house',
        'A glittering gem is not enough.',
        'The memory we used to share is no longer coher...',
        'She only paints with bold colors; she does not...'
    ]
})
keywords = ["of","is","she"]
for keyword in keywords:
    df[keyword] = df['A'].apply(lambda _str: _str.lower().count(keyword))
print(df)
Output
                                                   A  ofis  she
0                   Please wait outside of the house   1001                    A glittering gem isnot enough.   0102  The memory we used to share is no longer coher...   0103  She only paints with bold colors; she does not...   002Solution 2:
You can also do it this way:
df['is'] = df.A.str.count(r'is', flags=re.IGNORECASE)
df['of'] = df.A.str.count(r'of', flags=re.IGNORECASE)
df['she'] = df.A.str.count(r'she', flags=re.IGNORECASE)
                                                   A  of  is  she
0                   Please wait outside of the house   1001                    A glittering gem isnot enough.   0102  The memory we used to share is no longer coher...   0103  She only paints with bold colors; she does not...   002
Post a Comment for "Counting Specific Keywords In A Dataframe"