Для l oop получает AttributeError: у объекта 'Series' нет атрибута 'days' - PullRequest
0 голосов
/ 02 мая 2020

Я использую фреймы данных start_date и end_date, но у меня возникает проблема с моим l oop, возвращающим следующую ошибку: AttributeError: у объекта 'Series' нет атрибута 'days'

Я пытался добавить .iterrows (), .dt.days, pandas .Series.iteritems, но безуспешно

# Function to get a list of all dates that are to be downloaded
def get_dates():
    df1 = pd.read_csv(r"C:\Users\14385\PycharmProjects\execvet_actrivist_db\short_seller_database.csv")
    raw_start_date = df1['Publication Date']
    start_date= pd.to_datetime(raw_start_date)
    ticker = df1['Ticker']
    end_date = start_date + timedelta(days=365)  # One year trailing calendar days acc. to IEX docu

    **dates = [start_date + timedelta(days=i) for i in range((end_date - start_date).days)] ##.dt.days Not working either**

Я также пытался преобразовать ряд во фрейм данных (даты = [start_date + timedelta (days = i) для i в диапазоне ((end_date.to_frame () - start_date.to_frame))]), но не удалось

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 03 мая 2020

Некоторые исправления здесь, timedelta(days=365) не будет добавлять полный год, если, например, следующий год является високосным. А вторые start_date и end_date должны быть сериями даты и времени, вычитание является объектом TimeDelta, поэтому days должно быть в порядке:

from pandas.tseries.offsets import DateOffset

# ....

start_date= pd.to_datetime(raw_start_date)
end_date = start_date + DateOffset(years=1)
dates = [start_date + DateOffset(days=i) \
    for i in (end_date - start_date).days]

Я знаю, что такое dates матрица для, но при условии, что матрица dates генерируется каждый день от начала до конца для каждой записи в начале, вы можете использовать daterange:

dates = [pd.date_range(start, start + DateOffset(years=1), freq='1D')\
        for start in start_date]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...