代码之家  ›  专栏  ›  技术社区  ›  shockwave

python将前导零添加到时间字段[重复]

  •  0
  • shockwave  · 技术社区  · 6 年前

    这个问题已经有了答案:

    如何将前导零添加到数据帧中的int列。我有一个int列,它有hhmms格式的时间值。上午12点之后的一些时间值有两位数。即30应该是0030,45应该是0045。如何将前导零添加到下一列

    ColumnName
    100012
    225434
    30
    45
    36
    80200
    

    预期结果

    ColumnName
    100012
    225434
    0030
    0045
    0036
    80200
    

    我在python中使用pandas尝试了下面的代码,但是没有成功

    str(df.ColumnName).zfill(4)
    

    我也试过了

    if(len(str(df.ColumnName))==2)
        str(df.ColumnName).zfill(4)
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   akuiper    6 年前

    使用 系列 内置 Series.str.zfill 方法

    df.ColumnName.astype(str).str.zfill(4)
    
    #0    100012
    #1    225434
    #2      0030
    #3      0045
    #4      0036
    #5     80200
    #Name: ColumnName, dtype: object
    
        2
  •  3
  •   DeepSpace    6 年前

    您必须采取以下步骤:

    1. 将列的内容转换为字符串
    2. 使用访问内容 str 存取器。
    3. 呼叫 zfill

    最重要的是,

    四。重新分配回系列:


    df = pd.DataFrame({'a': [1, 2, 10, 20]})
    print(df)
    
    #     a
    # 0   1
    # 1   2
    # 2  10
    # 3  20
    
    
    df['a'] = df['a'].astype(str).str.zfill(4)
    print(df)
    
    #       a
    # 0  0001
    # 1  0002
    # 2  0010
    # 3  0020