In [173]: df.loc[df.Species.str.contains(r'\bWhite\s+bear\b'), 'Species'] = 'White_bear'
In [174]: df
Out[174]:
Species
0 White_bear
1 Brown Bear
2 Brown Bear 100 Kg
3 White_bear
或者更一般的解决方案:
In [204]: df
Out[204]:
Species
0 White bear
1 Brown Bear
2 Brown Bear 100 Kg
3 White bear 200 cm
In [205]: from_re = [r'.*?\bwhite\b\s+\bbear\b.*',r'.*?\bbrown\b\s+\bbear\b.*']
In [206]: to_re = ['White_bear','Brown_bear']
In [207]: df.Species = df.Species.str.lower().replace(from_re, to_re, regex=True)
In [208]: df
Out[208]:
Species
0 White_bear
1 Brown_bear
2 Brown_bear
3 White_bear
可以使用布尔索引:
或者更一般的解决方案:
RegEx explanation
相关问题 更多 >
编程相关推荐