如何使用 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'")
我想将我的 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'")