【问题标题】:How to replace exact string to other using replace() of Panda.DataFrame?如何使用 Panda.DataFrame 的 replace() 将确切的字符串替换为其他字符串?
【发布时间】:2021-11-29 10:29:34
【问题描述】:

我想将我的 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。

【问题讨论】:

    标签: python pandas string replace


    【解决方案1】:

    你可以使用$:

    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
    

    【讨论】:

      【解决方案2】:

      试试:

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

      【讨论】:

      • 成功了!所有像“0-4”这样的元素都用“”扭曲。这就是失败的原因。谢谢。
      猜你喜欢
      • 2023-02-22
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 2019-11-21
      相关资源
      最近更新 更多