Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 大熊猫时间序列预测中的日期时间问题_Python_Pandas_Datetime_Time - Fatal编程技术网

Python 大熊猫时间序列预测中的日期时间问题

Python 大熊猫时间序列预测中的日期时间问题,python,pandas,datetime,time,Python,Pandas,Datetime,Time,试图用python实现时间序列预测模型,但面临日期时间数据的问题 因此,我有一个数据帧'df',有两列datetime和float类型: 然后我尝试使用values方法构建一个数组。但是smth奇怪发生了,它以奇怪的格式显示日期,带有时间戳和时间: 基本上因为它,我不能实现接收以下消息的模型,例如:“不能在没有freq的情况下向Timestamp添加整数值。” 那么问题是什么?如何解决呢?您可以将整数转换为时间增量,然后像以前一样进行计算: from datetime import time

试图用python实现时间序列预测模型,但面临日期时间数据的问题

因此,我有一个数据帧'df',有两列datetime和float类型:

然后我尝试使用values方法构建一个数组。但是smth奇怪发生了,它以奇怪的格式显示日期,带有时间戳和时间:

基本上因为它,我不能实现接收以下消息的模型,例如:“不能在没有freq的情况下向Timestamp添加整数值。”


那么问题是什么?如何解决呢?

您可以将整数转换为
时间增量
,然后像以前一样进行计算:

from datetime import timedelta

interval = timedelta(days = 5)

#5 days later
time_stamp += interval
这很复杂

首先,在创建
numpy
数组时,所有类型都是相同的。但是,
datetime64
int
不同。所以我们必须解决这个问题,我们会的

其次,您尝试使用
df.values
来执行此操作。然而,有意义的是,
pandas
将整个
df
放入
dtype=object
然后放入
对象
数组。问题是,
时间戳
被保留为
时间戳
,这会妨碍您的工作

所以我会自己把它们变成这样

a = np.column_stack([df[c].values.astype(int) for c in ['transaction_date', 'amount']])

a

array([[1454284800000000000,                   1],
       [1454371200000000000,                   2],
       [1454457600000000000,                   3],
       [1454544000000000000,                   4],
       [1454630400000000000,                   5]])
a[:, 0].astype(df.transaction_date.values.dtype)

array(['2016-02-01T00:00:00.000000000', '2016-02-02T00:00:00.000000000',
       '2016-02-03T00:00:00.000000000', '2016-02-04T00:00:00.000000000',
       '2016-02-05T00:00:00.000000000'], dtype='datetime64[ns]')
我们总是可以像这样转换背面的第一列

a = np.column_stack([df[c].values.astype(int) for c in ['transaction_date', 'amount']])

a

array([[1454284800000000000,                   1],
       [1454371200000000000,                   2],
       [1454457600000000000,                   3],
       [1454544000000000000,                   4],
       [1454630400000000000,                   5]])
a[:, 0].astype(df.transaction_date.values.dtype)

array(['2016-02-01T00:00:00.000000000', '2016-02-02T00:00:00.000000000',
       '2016-02-03T00:00:00.000000000', '2016-02-04T00:00:00.000000000',
       '2016-02-05T00:00:00.000000000'], dtype='datetime64[ns]')

请提供真实数据。照片没用