使用 pandas 从 csv 文件中提取数据时出现错误

暗钻

我正在尝试从 aapl 数据中获取信号,但出现此错误

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime

apple_stock = pd.read_csv('AAPL.csv')
apple_stock = apple_stock.set_index(pd.DatetimeIndex(apple_stock['Date'].values))

ma30 = pd.DataFrame()
ma30['AM'] = apple_stock['Adj Close'].rolling(window=30).mean()

ma100 = pd.DataFrame()
ma100['AM'] = apple_stock['Adj Close'].rolling(window=100).mean()

data = pd.DataFrame()
data['AAPL'] = apple_stock['Adj Close']
data['MA30'] = ma30['AM']
data['MA100'] = ma100['AM']


def signal(data):
    signal_buy = []
    signal_sell = []
    f = -1

    for i in range(0, len(data)):

        if data['MA30'][i] > data['MA100']:
            if f != 1:
                signal_buy.append(data['AAPL'][i])
                signal_sell.append(np.nan)
                f = 1
            else:
                signal_buy.append(np.nan)
                signal_sell.append(np.nan)

        elif data['MA30'][i] < data['MA100']:
            if f != 0:
                signal_buy.append(np.nan)
                signal_sell.append(data['AAPL'][i])
                f = 0
            else:
                signal_buy.append(np.nan)
                signal_sell.append(np.nan)

        else:
            signal_buy.append(np.nan)
            signal_sell.append(np.nan)

    return signal_buy, signal_sell


buy_sell = signal(data)

data['buy signal'] = buy_sell[0]
data['sell signal'] = buy_sell[1]

print(data)

这是它给出的错误:

Traceback(最近一次通话最后):文件“C:/Users/k.taherinia/Desktop/Stock analysis and forecasting/moving_average_indicator.py”,第 53 行,在 buy_sell = signal(data) 文件“C:/Users/k. taherinia/Desktop/Stock analysis and forecasting/moving_average_indicator.py”,第 28 行,在信号中如果数据['MA30'][i] > data['MA100']:文件“C:\Users\k.taherinia\AppData\ Local\Programs\Python\Python38\lib\site-packages\pandas\core\generic.py",第 1527 行,在非零中引发 ValueError(ValueError:一个 Series 的真值是不明确的。使用 a.empty,a.bool ()、a.item()、a.any() 或 a.all()。

有些人(和/或在熊猫中)有同样的问题,但我找不到我的代码的解决方案

伐木机杰克

您不能一方面使用 [i] 定位器,另一方面将其释放。但是,要做到你所期望的,这里有一个简单的方法:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime

apple_stock = pd.read_csv('AAPL.csv')
apple_stock = apple_stock.set_index(pd.DatetimeIndex(apple_stock['Date'].values))

ma30 = pd.DataFrame()
ma30['AM'] = apple_stock['Adj Close'].rolling(window=30).mean()

ma100 = pd.DataFrame()
ma100['AM'] = apple_stock['Adj Close'].rolling(window=100).mean()

data = pd.DataFrame()
data['AAPL'] = apple_stock['Adj Close']
data['MA30'] = ma30['AM']
data['MA100'] = ma100['AM']

data['buy_signal'] = np.where(data.MA30 > data.MA100,1,0)
data['sell_signal'] = np.where(data.MA30 < data.MA100,1,0)

print(data)

请注意,您还可以使用以下方法执行唯一信号列:

data['signal'] =  np.where(data.MA30 > data.MA100,1,np.where(data.MA30 < data.MA100,-1,0))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 Pandas 从 CSV 文件中提取值

使用R语言从CSV文件的特定列中提取数据时出现问题

从多个 csv 文件中提取数据并使用 pandas 准备一个数据帧

如何使用 Pandas 从 csv 文件的列中提取日期?

使用PowerShell从CSV文件中提取数据

使用 Pandas 从 python 中的 url 读取 csv 时出现“错误标记数据”

使用Python在Pandas中读取CSV文件时出现UnicodeDecodeError

我正在使用pandas从数据框中提取两列,但其中一列成为索引,然后在尝试访问该列时出现关键错误

如何使用 Pandas 从 CSV 文件的日期列中提取特定的日期集?

使用for循环遍历列表时从csv文件中提取值

使用熊猫从特殊条件的CSV文件中提取数据

使用Python从CSV文件中提取列数据

使用 Python 从文本(在 CSV 文件中)中提取数据

使用python从csv文件中提取部分数据

在Python中使用URLLIB从在线CSV文件中提取数据

使用 powershell 排序和分组从 csv 文件中提取数据

使用 Python 从 CSV 文件中提取信息/清理数据

R:使用窗口函数从csv文件中提取数据

在 Debian OS 上使用 Pandas 从 github 存储库读取 csv 文件时出现奇怪的 csv 输出

将Python Pandas数据框写入CSV文件时出现Unicode错误

使用Pandas从文本文件中提取标题数据

读取和写入 csv 文件时出现 Python pandas 错误

使用 glob、os 使用 pandas 读取 csv 文件时出错

使用pandas .to_csv函数时出现PermissionError

使用ms ace驱动程序读取csv文件时出现数据错误

当我使用`sequel`将数据从csv文件导入到postgresql中时出现错误

使用 Pandas 读取 CSV 时出错

使用Pandas处理来自CSV的数据

使用Pandas将数据编程为CSV