我的数据框如下:
time price
0 2019-02-01 00:07:00 0.00234135
1 2019-02-01 00:10:15 0.0023541
2 2019-02-01 00:13:30 0.00235838
3 2019-02-01 01:03:00 0.00236977
4 2019-02-01 01:07:00 0.00237751
我要做的是使用以下代码来计算MACD:macd, macd_signal, macd_histogram = ti.macd(data,10,20,9)
我现在想用相关的macd值创建一个新列:df['macd'] = pd.Series(macd)
但是前20个值用于计算macd,因此前20个值没有macd值。
然后我应该使用从索引20开始的macd值创建一列。我尝试这样做:df.at[18, 'macd'] = pd.Series(macd)
,但是它不起作用,我收到以下错误消息:
ValueError: setting an array element with a sequence.
有帮助吗?谢谢!
答案 0 :(得分:0)
使用未定义的索引转换为Series
并不是一个好主意,因为新Series
和旧索引之间可能不符合要求:
df.loc[18:, 'macd'] = macd[18:]
使用pd.Series
的解决方案:
df.loc[18:, 'macd'] = pd.Series(macd, index=df.index)