【问题标题】:Add a zero before 1 digit number in a column pandas dataframe在 Pandas 数据框中的列中的 1 位数字之前添加一个零
【发布时间】:2021-05-05 12:39:59
【问题描述】:

我的 pandas 数据框中有一列包含法国城市的公社。这是一个例子:

index Com
1 Paris 3
2 Paris 17
3 Marseille 5
4 Abainville
5 Aast
6 Marseille 15
7 Lyon 4

除了我想在单个数字上加一个 0 来得到这个:

index Com
1 Paris 03
2 Paris 17
3 Marseille 05
4 Abainville
5 Aast
6 Marseille 15
7 Lyon 04

我能做什么?

【问题讨论】:

    标签: python pandas dataframe numbers digits


    【解决方案1】:
    df.Com = df.Com.str.replace(r"\D(\d)$", r" 0\1")
    

    您可以看到regex demo。它在字符串的末尾查看一个非数字和一个数字。捕获单个数字(在 \1 中)并用 0 填充。

    得到

    >>> df
    
       index           Com
    0      1      Paris 03
    1      2      Paris 17
    2      3  Marseille 05
    3      4    Abainville
    4      5          Aast
    5      6  Marseille 15
    6      7       Lyon 04
    

    【讨论】:

      【解决方案2】:

      使用zfill 方法补零。

      df = df.convert_dtypes()
      df.Com = df.Com.astype(str).str.zfill(2)
      

      【讨论】:

        【解决方案3】:

        使用您展示的示例,请尝试以下操作。使用 Pandas str.replace 函数。

        df['Com'].str.replace(r"^(\S+)(\s+)(\d)$", r"\g<1>\g<2>0\g<3>")
        

        输出如下:

           index           Com
        0      1      Paris 03
        1      2      Paris 17
        2      3  Marseille 05
        3      4    Abainville
        4      5          Aast
        5      6  Marseille 15
        6      7       Lyon 04
        

        【讨论】:

          猜你喜欢
          • 2021-05-01
          • 2013-01-02
          • 2016-03-28
          • 1970-01-01
          • 1970-01-01
          • 2016-04-12
          • 1970-01-01
          • 2017-11-16
          • 2020-05-04
          相关资源
          最近更新 更多