所以我的DF有以下几列:代理商|基本工资| job_title | ...等

现在,在我的专栏:job_title中,注册了许多不同的职位。

现在,我有很多职位都包含“老师”一词,我想将它们合并。

例如!!老师,老师特别版,每节课老师,老师一般版,只做一个类别并将其存储在“老师”下!

这样,当我查看职称的value_counts()时,我没有很多不同的老师价值观,而我只有1个,其中包括所有不同类型的老师,归入“老师”类别。

输入项


  df [“ job_title”]。value_counts()


输出:


  
  老师....... 72979
  每节课的老师...... 61369
  老师特别版...... 24642
  


我希望我的输出为:


  
  老师..........(所有三项之和!)

最佳答案

您可以使用Series.str.contains()搜索匹配的字符串,然后根据需要对其进行修改:

df.loc[df['job_title'].str.contains('teacher'), 'job_title'] = 'teacher'


例如:

df = pd.DataFrame(
    {
        'job_title': ['teacher', 'teacher per session', 'teacher special ed',
                      'programmer']
    }
)

print(df)
#             job_title
#0              teacher
#1  teacher per session
#2   teacher special ed
#3           programmer


将所有包含单词'teacher'的标题更改为'teacher'

df.loc[df['job_title'].str.contains('teacher'), 'job_title'] = 'teacher'
print(df['job_title'].value_counts())
#teacher       3
#programmer    1
#Name: job_title, dtype: int64


请注意,在此示例中,我将覆盖现有列,但是您可以轻松地创建一个新列:

df.loc[df['job_title'].str.contains('teacher'), 'new_job_title'] = 'teacher'

09-25 21:21