Pandas换绳

2024-09-29 17:10:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas列,其中包含一些字符串值,如:

White bear
Brown Bear
Brown Bear 100 Kg
White bear 200 cm             

如果所有字符串都包含序列“whitebear”,如何检查它们并用类似“whitebear”的字符串替换整个值(不仅仅是序列)?你知道吗

df['Species'] = df['Species'].str.replace('White bear', 'White_bear')   

不适合我,因为它只替换序列。你知道吗


Tags: 字符串pandasdfcm序列replacespeciesbear
1条回答
网友
1楼 · 发布于 2024-09-29 17:10:39

可以使用布尔索引:

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

相关问题 更多 >

    热门问题