В вашем цикле for
, i
- это значение каждой строки в Series
"day"
, а не индекс. Таким образом, ваш цикл должен быть структурирован как:
date_chosen = dt.datetime(2019, 4, 2)
raw_csv = pd.read_csv(data_series, sep=',', na_values=missing_values)
demand_s = pd.to_numeric(raw_csv['DEMAND'])
date_series = pd.to_datetime(raw_csv['DATE'])
demand_needed = []
day = date_series.dt.day
for idx, d in day.iteritems():
if d == date_chosen.day:
demand_needed.append(demand_s.iloc[idx])
Но лучшим решением IIUC будет использование boolean indexing
вместо итерации:
demand_needed = raw_csv.loc[raw_csv.DATE.dt.day.eq(date_chosen.day), 'DEMAND']
Или, если вам нужен вывод как list
вместо Series
, используйте:
demand_needed = raw_csv.loc[raw_csv.DATE.dt.day.eq(date_chosen.day), 'DEMAND'].tolist()