Я создал следующее df
со следующим кодом:
df = pd.read_table('https://raw.githubusercontent.com/guipsamora/pandas_exercises/master/06_Stats/Wind_Stats/wind.data', sep = "\s+", parse_dates = [[0,1,2]])
Если мы выполним следующую команду:
type(df['Yr_Mo_Dy'][0])
Мы увидим, что наблюдения под ['Yr_Mo_Dy']
имеют формат pandas._libs.tslibs.timestamps.Timestamp
.
Я пытаюсь сделать следующее: всякий раз, когда я вижу год> = 2061 (['Yr_Mo_Dy']
), я хочу вычесть -100, в противном случае я просто продолжаюгод и продолжить с итерации.
Я попробовал следующий код:
for i in list(range(df.shape[0])):
# assign all the observations under df['Yr_Mo_Dy'] to ts
ts = df['Yr_Mo_Dy'][i]
if df['Yr_Mo_Dy'][i].year >=2061:
# replace the year in ts by year - 100
ts.replace(year=df['Yr_Mo_Dy'][i].year - 100)
else:
continue
Но цикл ничего не делает.Я чувствую, что это как-то связано с присваиванием переменной ts = df['Yr_Mo_Dy'][i]
.но я не могу придумать другой способ сделать это.
Я пытаюсь назначить переменную после каждой итерации цикла, учитывая ответ, который я увидел в в этом посте .