繁体   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