簡體   English   中英

For 循環獲取 AttributeError: 'Series' object has no attribute 'days'

[英]For loop gets AttributeError: 'Series' object has no attribute 'days'

我正在使用 start_date 和 end_date 數據幀,但我的循環遇到了問題,返回以下錯誤: AttributeError: 'Series' object has no attribute 'days'

我試圖 add.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**

我還嘗試將系列轉換為數據框( dates = [start_date + timedelta(days=i) for i in range((end_date.to_frame() - start_date.to_frame))])但失敗了

謝謝你的幫助!

此處進行了一些更正,例如,如果下一年是閏年, timedelta(days=365)不會添加一整年。 第二個start_dateend_date應該是 datetime 系列,減法是 TimeDelta object 所以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矩陣的用途,但假設每天從開始到結束為 start 中的每條記錄生成dates矩陣,您可以使用daterange

dates = [pd.date_range(start, start + DateOffset(years=1), freq='1D')\
        for start in start_date]

暫無
暫無

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

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