在 Python 中使用 for 循环向日期列添加前导零

gf7*_*gf7 5 python for-loop pandas leading-zero

我浏览了很多其他问题,但没有看到一个非常合适的问题。

假设我有数据框,df:

Name     Month
Bob      5
Jim      7
Mary     12
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个 for 循环,它将用一位数向月份添加前导零(并按原样打印其他月份),然后我可以用列表覆盖该列。

这是我所拥有的

list={}
for i in df['Month']:
      if len(df['Month'][i]) < 2:
          print("{:02}".format(i))
      else:
          print(i)
print(list)
df['Month']=list
Run Code Online (Sandbox Code Playgroud)

像这样的代码给了我错误:

TypeError: object of type 'numpy.int64' has no len()
Run Code Online (Sandbox Code Playgroud)

我不完全确定从哪里解决这个问题或从哪里开始。谢谢!

gto*_*mer 5

给你(没有循环):

df["Month"] = df.Month.map("{:02}".format)
Run Code Online (Sandbox Code Playgroud)