【问题标题】:Make a column based on specific values from other column pandas python根据其他列 pandas python 中的特定值创建列
【发布时间】:2021-07-12 18:11:18
【问题描述】:

我得到了这个数据框

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

我想根据“标题”列创建另一个名为“性别”的列

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

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

Dear Madam is F(emale)

亲爱的先生/女士是O

希望有人能帮忙!

【问题讨论】:

  • 您想明确定义如何从这些称呼中识别性别。仅仅编写一个正则表达式似乎不足以完成这种任务。

标签: python pandas dataframe multiple-columns


【解决方案1】:
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

【讨论】:

    【解决方案2】:
    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
    

    【讨论】:

      【解决方案3】:
      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)
      

      【讨论】:

        猜你喜欢
        • 2021-08-27
        • 1970-01-01
        • 1970-01-01
        • 2020-12-05
        • 1970-01-01
        • 1970-01-01
        • 2020-08-18
        • 2020-09-24
        • 2021-10-12
        相关资源
        最近更新 更多