基于 Pandas 中另一列文本的特征工程师文本
Feature Engineer Text Based on Text from Another Column in Pandas
我正在尝试通过将文本映射到名为 'programGrp' 的新功能来简化名为 'programName' 的功能,而不是每个程序的低级名称,例如 Mech/Elec/Petroleum工程学,我会把他们分成一般的组,比如 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() 或 a.all()。
但是当我 运行 它时,我得到了这个错误。关于如何最好地解决这个问题的任何提示?
您可以改用这个:
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'])
我正在尝试通过将文本映射到名为 'programGrp' 的新功能来简化名为 'programName' 的功能,而不是每个程序的低级名称,例如 Mech/Elec/Petroleum工程学,我会把他们分成一般的组,比如 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() 或 a.all()。
但是当我 运行 它时,我得到了这个错误。关于如何最好地解决这个问题的任何提示?
您可以改用这个:
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'])