1

I got this dataframe

Contact Title
1 Dear Sir White,
2 Dear Madam Ford,
3 Dear Sir / Madam Hendricx,

I want to make another column called 'Gender' based on the column 'Title'

Contact Title Gender
1 Dear Sir White, M
2 Dear Madam Ford, F
3 Dear Sir / Madam Hendricx, O

So Dear Sir is M(ale)

Dear Madam is F(emale)

Dear Sir / Madam is O

I hope someone can help!

Monkey D
  • 69
  • 4
  • You want to clearly define how you want to identify gender from these salutations. Merely writing a regex seems less than sufficient for that kind of task. – ifly6 Jul 12 '21 at 18:14

3 Answers3

3
df.loc[df['title'].str.contains("Sir"), 'Gender'] = 'Male'
df.loc[df['title'].str.contains("Madam"), 'Gender'] = 'Female'
df.loc[df['title'].str.contains(" Sir / Madam"), 'Gender'] = '0'

also, check this

hilo
  • 116
  • 11
1
g = []

for text in df.Title:
    if ' Sir / Madam' in text:
        g.append('O')
    elif 'Sir' in text:
        g.append('M')
    else:
        g.append('F')

df["Gender"] = g
Henry Ecker
  • 34,399
  • 18
  • 41
  • 57
0
def my_func(text):
    if 'Sir / Madam' in text:
        return 'O'
    elif 'Madam' in text:
        return 'F'
    else:
        return 'M'

df['Gender'] = df['Title'].apply(my_func)