import numpy as np
import math
import pandas as pd
import matplotlib.pyplot as plt
gold = pd.read_csv("CSV.csv")
import datetime as dt
我试着画出黄金价格的平方收益。我的问题是它仍然不想重新取样
现在看起来是这样的:
Date Open High Low Close Adj Close Volume
0 2017-11-15 24.459999 24.850000 24.459999 24.629999 24.629999 120900
1 2017-11-16 24.459999 24.780001 24.459999 24.680000 24.680000 133900
2 2017-11-17 24.559999 25.040001 24.549999 24.969999 24.969999 137100
3 2017-11-20 24.959999 25.059999 24.730000 24.799999 24.799999 61500
4 2017-11-21 24.860001 25.090000 24.549999 25.070000 25.070000 95400
5 2017-11-22 25.180000 25.200001 24.969999 25.010000 25.010000 38800
6 2017-11-24 25.110001 25.110001 24.570000 24.740000 24.740000 35700
7 2017-11-27 24.740000 25.059999 24.740000 24.930000 24.930000 68900
8 2017-11-28 25.030001 25.290001 24.879999 25.219999 25.219999 79100
9 2017-11-29 25.240000 25.860001 24.809999 25.790001 25.790001 139900
10 2017-11-30 26.010000 26.030001 25.480000 25.620001 25.620001 105800
11 2017-12-01 25.709999 25.790001 25.290001 25.670000 25.670000 87800
12 2017-12-04 25.889999 26.059999 25.709999 25.920000 25.920000 66400
gold['sq_log_ret'] = np.log(gold.Close).diff(1)*np.log(gold.Close).diff(1)
gold['sq_log_ret'].resample('W', how='mean').plot.line()
plt.xlabel("time")
plt.ylabel("squared log returns")
plt.title("mean sq_log_ret in two weeks periode")
plt.show()
我得到一个类型错误如下:
Only valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'.
我认为这些从0到12的数字是问题所在,但我不知道如何删除大型数据集的这些数字。任何帮助或想法都将不胜感激
IIUC,你的数据框里没有索引。根据docs,应该有一个用于重新采样的datetime索引。这就是我所做的,对我有用, 创建了一个转换为熊猫的索引
datetime
然后,运行与你相同的代码
输出
相关问题 更多 >
编程相关推荐