基于Pandas中另一列文本的特征工程师文本



我试图通过将文本映射到一个名为'programGrp'的新功能来简化一个名为'programName'的功能,而不是每个程序的低级名称,如机械/电气/石油工程,我会将它们分组为一般组,如STEM,人文科学,生命科学等。

这是我的尝试:

def fill_stem(df):
for i in df:
if df['programName'].str.contains('Engineering') | df['programName'].str.contains('Computer Science') | df['programName'].str.contains('Mathematics'):
df['programGrp'].loc[i] = 'STEM'
fill_stem(df)

ValueError: Series的真值是不明确的。使用a.empty a.bool (), a.item (), a.any()或所有()。

但是当我运行它时,我得到了这个错误。有什么最好的建议吗?

你可以这样做:

df.loc[df['programName'].str.contains('Engineering|Computer Science|Mathematics'), 'programName'] = 'STEM'

或:

df['programName'] = np.where(df['programName'].str.contains('Engineering|Computer Science|Mathematics'), 'STEM', df['programName'])

相关内容

  • 没有找到相关文章

最新更新