根据其他列的特定值创建一列 pandas python

Make a column based on specific values from other column pandas python

我得到了这个数据框

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

我想在 'Title'

列的基础上创建另一个名为 'Gender' 的列
Contact Title Gender
1 Dear Sir White, M
2 Dear Madam Ford, F
3 Dear Sir / Madam Hendricx, O

所以亲爱的先生是 M(ale)

亲爱的女士是F(女)

尊敬的先生/女士是O

希望有人能帮忙!

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
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'

另外,检查 this

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)