簡體   English   中英

在 Python 中使用 for 循環向日期列添加前導零

[英]Using for loop in Python to add leading zeros to date column

我瀏覽了很多其他問題,但沒有看到一個非常合適的。

假設我有數據框,df:

Name     Month
Bob      5
Jim      7
Mary     12

我正在嘗試編寫一個 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

像這樣的代碼給了我錯誤:

TypeError: object of type 'numpy.int64' has no len()

我不完全確定從哪里解決這個問題或從哪里開始。 謝謝!

給你(沒有循環):

df["Month"] = df.Month.map("{:02}".format)

你可以試試這個:

df = pd.read_csv('file.csv', converters={'Month': '{:0>2}'.format}).astype('str')
print(df)
df['Month'].astype(str).str.zfill(2)

為此使用 zfill:

df['Month'] = df['Month'].astype(str).str.zfill(2)
print(df)

   Name Month
0   Bob    05
1   Jim    07
2  Mary    12

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM