如何将时间戳日期转换为整数值



我有以下设置:

我想将yfinance Dataframe中的数据存储在两个表示X和Y值的列表中。这可以通过以下几行来实现:

import yfinance as yf
import matplotlib.pyplot as plt

stock = 'TSLA'
start = '2020-11-01'

df = yf.download(stock , start=start)
nfx = []
nfy = []
for index, row in df.iterrows():

x_data = nfx.append(index)
y_data = nfy.append(row['Close'])

现在我想把这些X和Y值输入Polyfit函数。要做到这一点,我需要以某种方式将它们作为整数。

我怎样才能实现这个想法?当我尝试以下方法时:

for index, row in df.iterrows():

x_data = nfx.append(np.asarray(index).astype(float))
y_data = nfy.append(row['Close'])

,我得到了错误信息:

TypeError: float() argument must be a string or a number, not 'Timestamp'

我在这里错过了什么?

非常感谢。本杰明

您可以尝试使用Unix时间戳。

import datetime
now = datetime.datetime.utcnow() # now is a datetime object
print(now.timestamp()) # seconds since Unix epoch, it's a float however
1633081223.677152
print(int(now.timestamp())) # seconds have been converted to integers
1633081223

或者您可以使用datetime.strftime将datetime对象转换为可以使用int()的字符串。


如果你有字符串索引,您可以使用datetime.strptime将它们转换为datetime对象,然后,您可以使用Unix时间戳像上面。

obj = datetime.datetime.strptime("2020-11-01", "%Y-%m-%d")
obj.timestamp() # now available

最新更新