【问题标题】:Remove both Leading and Trailing zeros from Date从日期中删除前导零和尾随零
【发布时间】:2022-10-14 05:26:06
【问题描述】:

我有一个df 喜欢这个

   time_col

0   02:10:41
1   09:19:22
2   10:55:46
3   30:64:50

我想同时删除 trailing 和“前导”零。

我的预期输出应该看起来像

    time_col      Time
0   02:10:41   2:10:41
1   09:19:22   9:19:22
2   10:55:46  10:55:46
3   30:64:50   30:64:5

任何建议,将不胜感激

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    如果要删除Leading zeros,请使用lstrip()

    df['Time'] = df['time_col'].astype('str').apply(lambda x: x.lstrip('0'))
    

    #输出

        time_col       Time
    0   02:10:41    2:10:41
    1   09:19:22    9:19:22
    2   10:55:46   10:55:46
    3   30:64:50   30:64:50
    

    如果要删除 Trailing zeros,请使用 rstrip()

    df['Time'] = df['time_col'].astype('str').apply(lambda x: x.rstrip('0'))
    

    #输出

    0   02:10:41  02:10:41
    1   09:19:22  09:19:22
    2   10:55:46  10:55:46
    3   30:64:50   30:64:5
    

    您的情况...如果您想同时删除 Leadingtrailing 使用 strip()

    df['Time'] = df['time_col'].astype('str').apply(lambda x: x.strip('0'))
    

    #输出

        time_col      Time
    0   02:10:41   2:10:41
    1   09:19:22   9:19:22
    2   10:55:46  10:55:46
    3   30:64:50   30:64:5
    

    【讨论】:

      【解决方案2】:

      使用带有否定后视的正则表达式:

      df['time_col'] = df['time_col'].str.replace(r'(?<!d)0', '', regex=True)
      

      【讨论】:

        猜你喜欢
        • 2014-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多