如何使用 Panda.DataFrame 的 replace() 将确切的字符串替换为其他字符串?

How to replace exact string to other using replace() of Panda.DataFrame?

我想将我的 DataFrame 中 'tumor-size' 列中的所有“0-4”替换为“00-04”。我在专栏中的内容如下。

print(df['tumor-size'].unique())
["'15-19'" "'35-39'" "'30-34'" "'25-29'" "'40-44'" "'10-14'" "'0-4'" "'20-24'" "'45-49'" "'50-54'" "'5-9'"]

我在第 1 名尝试的内容没有任何改变。

df['tumor-size'] = df['tumor-size'].replace('0-4', '00-04')

接下来,我试了下。在这种情况下,所有“0-4”都被替换为“00-40”,但是所有“40-44”都被替换为“400-044”,因为“40-44”包含“0-4”。

df['tumor-size'] = df['tumor-size'].str.replace('0-4', '00-04')

我阅读了其他 QA,发现我需要正则表达式。然后我尝试跟随,因为元素总是以“0-4”开头,但没有再改变。

df['tumor-size'] = df['tumor-size'].str.replace(r'^0-4', '00-04', regex=True)

我想做的很简单,但我不知道如何实现。 请有人帮助我。 谢谢,

注意:我每次尝试都会将所有数据从 csv 文件重新加载到 df。

您可以使用 $:

df = pd.DataFrame(data={'tumor-size': ['15-19', '35-39', '30-34', '25-29',
                                       '40-44', '10-14', '0-4', '20-24',
                                       '45-49', '50-54', '5-9']})
df['tumor-size'] = df['tumor-size'].str.replace(r'^0-4$', '00-04', regex=True)

输出:

   tumor-size
0       15-19
1       35-39
2       30-34
3       25-29
4       40-44
5       10-14
6       00-04
7       20-24
8       45-49
9       50-54
10        5-9

尝试:

df['tumor-size'] = df['tumor-size'].replace("^'0-4'$", "'00-04'")