在python中从列中提取单词匹配

在python中从列中提取单词匹配,python,python-3.x,Python,Python 3.x,我有一个数据框,其中一列的形式是 Mat_Headers_Turbine = df_2['1'].unique().tolist() print(Mat_Headers_Turbine) ['TURBINE , GAS ', 'TURBINE ', 'TURBINE,STEAM ', 'TURBINE, STEAM ', 'TURBINE,EXPANSION ', 'TURBINE STEAM ', 'STEAM TURBINE ', 'TURATING ', 'PUMPS, RECIPROC

我有一个数据框,其中一列的形式是

Mat_Headers_Turbine = df_2['1'].unique().tolist()
print(Mat_Headers_Turbine)

['TURBINE , GAS ', 'TURBINE ', 'TURBINE,STEAM ', 'TURBINE, STEAM ', 'TURBINE,EXPANSION ', 'TURBINE STEAM ', 'STEAM TURBINE ', 'TURATING ', 'PUMPS, RECIPROCATING ', 'BLOWERS ', 'REGENERATOR CYLONE SEPERATOR ', 'MOBILE CRANE ', 'MECHANICAL SEAL ', 'TOOLS - MISCELLANEOUS', 'LADDERS ', 'TRANSDUCER ', 'FLAME SCANNERS AND PARTS:', 'VALVE, CONTROL, GLOBE ']
我只需要将对应的值提取到“TURBINE”,即“gas/steam/air/engine/expansion”的新列中。
行数约为50000。如何执行此操作?

您只需使用以下查询即可

turbine_values = df_2[(df_2['1'].notnull()) & (df_2['1'].str.contains('TURBINE'))]['1'].apply(lambda turbine_string: turbine_string.split(',')[-1].strip())

这将在所需列上显示所有包含
'TURBINE'
的行,然后显示相应的值。

df_2.loc[df_2['1'].isin([])]
应该为您设置的isin将不起作用,因为格式为[TURBINE,Gas]的文本if将不起作用在一个单元格中。谢谢您的回复。`turbine_values=df_2[df_2['Mat Header'].str.contains('turbine')]['Mat Header'].apply(λturbine_string:turbine_string.split(',')[-1].strip())打印(df_2[turbine_values])`Getting error ValueError:无法使用包含NA/NaN值的非布尔数组屏蔽我更改了查询以获取不为空的行查询工作**GAS;MAKE:M/S HITACHI;MODEL:H-25**正在剥离“Turbine”,但我只需要“GAS”并想去掉其余的…如果你想要“GAS”,在
涡轮机\u值
中进行另一个查询。像这样
turbine\u values=turbine\u values[turbine\u values.包含('GAS')]