我使用fbprophet
数据集进行时间序列分析。数据集分别有两列date
和y
。
date y
January 01, 1992 146376
February 01, 1992 147079
March 01, 1992 159336
April 01, 1992 163669
May 01, 1992 170068
date y
01/01/92 146376
01/02/92 147079
01/03/92 159336
01/04/92 163669
01/05/92 170068
我首先使用pd.to_datetime
将日期更改为日期时间格式,然后使用模型model = Prophet().fit(df)
。但是,结果会一直显示TypeError: int() argument must be a string, a bytes-like object or a number, not 'slice'
。反正有没有解决这个问题?
这是我的代码,
df.date = pd.to_datetime(df.date)
df['date'] = df['date'].dt.strftime('%Y-%m-%d')
model = Prophet()
model.fit(df)
当我运行model.fit(df)
我上面提到的TypeError
出现时。
答案 0 :(得分:2)
大多数回归和分类器方法只接受数字或字符串dtypes,因此此错误消息会抱怨您的<Directory /var/www/FlaskApp/Static/>
Order allow,deny
Allow from all
</Directory>
列。
假设我们有以下DataFrame:
datetime
我们可以创建一个数字列 - UNIX TimeStamp(自In [63]: df
Out[63]:
date y
0 1992-01-01 146376
1 1992-01-02 147079
2 1992-01-03 159336
3 1992-01-04 163669
4 1992-01-05 170068
UTC以来的秒数):
1970-01-01 00:00:00
我们可以将其转换回In [64]: df['unix_ts'] = df.date.astype(np.int64) // 10**9
In [65]: df
Out[65]:
date y unix_ts
0 1992-01-01 146376 694224000
1 1992-01-02 147079 694310400
2 1992-01-03 159336 694396800
3 1992-01-04 163669 694483200
4 1992-01-05 170068 694569600
dtype:
datetime
答案 1 :(得分:2)
我使用先知有类似的问题。在我的情况下,问题是'ds'列中的重复日期(即日期)
我添加了
df=df.drop_duplicates(['date'], keep='last')
(显然,从功能上讲这没有意义,但它可能会隔离你的问题)