Вы можете попробовать преобразовать в строку и после этого, в формат даты, вы хотите, как это:
# The first step is to change the type of the column,
# in order to get rid of the .0 we will change first to int and then to
# string
df["date"] = df["date"].astype(int)
df["date"] = df["date"].astype(str)
for i, row in df.iterrows():
# In case that the date format is similar to 20012020
x = str(df["date"].iloc[i])
if len(x) == 8:
df.at[i,'date'] = "{}-{}-{}".format(x[:2], x[2:4], x[4:])
# In case that the format is similar to 1012020
else:
df.at[i,'date'] = "0{}-{}-{}".format(x[0], x[1:3], x[3:])
Редактировать:
- Как вы сказал, что это решение работает, только если месяц всегда состоит из 2 цифр.
- Добавлена пропущенная переменная в l oop
- Добавлены типы изменений столбца перед вводом l oop.
Дайте мне знать, если это поможет!