我有一个带有一列的pandas数据框,其字符串值如下:
Aircraft Type
Boeing 777
777-200
B777
B777-300ER
777-312
我想用'Boeing 777'替换所有字符串值,但是我在数据中以略有不同的格式表示了多个单独的Boeing 777飞机实例。我该如何编写代码,以将包含“ 777”的字符串替换为“ Boeing 777”的所有实例?我的问题是,波音777飞机以30多种不同的格式表示,上面的数据示例只是其中的一个子集。唯一常见的主题是所有格式都包括“ 777”。
我希望最终输出看起来像这样:
Aircraft Type
Boeing 777
Boeing 777
Boeing 777
Boeing 777
我尝试了以下代码:
commerical_df['Model'].replace({'B777':'Boeing 777', '777-300ER':'Boeing 777'})
但是,问题又来了,我需要手动查找和替换30多个不同的值,这很麻烦。
答案 0 :(得分:0)
您可以将Series.str.contains
与numpy.where
一起使用,以有条件地检查字符串777
是否存在,然后将其转换为Boeing 777
注意
我添加了不包含777
的另一行来显示解决方案:
# Print original dataframe
print(df)
Aircraft Type
0 Boeing 777
1 777-200
2 B777
3 B777-300ER
4 777-312
5 888
df['Aircraft Type'] = np.where(df['Aircraft Type'].str.contains('777'),
'Boeing 777',
df['Aircraft Type'])
print(df)
Aircraft Type
0 Boeing 777
1 Boeing 777
2 Boeing 777
3 Boeing 777
4 Boeing 777
5 888
答案 1 :(得分:0)
您可以尝试
commerical_df.loc[commerical_df['Model'].str.contains('777'), 'Model'] = 'Boeing 777'