我是 Python 和 Pandas 的新手。我有一个 Pandas 数据框,由许多股票(例如 S&P 500)的多年时间序列数据组成。我想逐个迭代每个唯一的股票代码并计算收盘价的技术指标。我一直在尝试从主数据框中为每只独特的股票创建一个新的数据框及其所有价格历史,然后将其传递给一个方法,该方法将进行技术分析而不是传递主数据框。这是我的数据框中的一些示例数据:
Id Symbol Date Open High Low Close Volume
1 A99 2012-01-02 730.019 730.019 730.019 730.019 0
2 ABA 2012-01-02 4.200 4.200 4.200 4.200 0
3 AFI 2012-01-02 5.360 5.360 5.360 5.360 0
4 AIA 2012-01-02 2.520 2.520 2.520 2.520 0
...
501 A99 2012-01-03 730.019 730.019 730.019 730.019 0
...
我尝试过 loc、iloc 和 groupby 等索引器,但没有运气。我已经阅读了很多文章,例如 根据 Pandas 中列中的值从 DataFrame 中选择行, 但没有一篇完全符合我的要求。所有这些的主要问题是你必须有一个文字搜索条件,而我想要一个变量过滤器名称,即股票名称。我的数据表示例如下:
这是我当前不起作用的代码片段:
# 从数据库中获取数据 df = stockPrices.get_data()
# Create technical indicators for each distinct stock
# First get a series of all unique stock codes
ts = pd.Series(df.Symbol.unique())
# Iterate through the series and call the technical indicator method
for row in ts:
# filter for just this stock
filtered_df = df.loc[df['Symbol'] == row]
df = stockPrices.calc_technicals(filtered_df, row)
任何指针将不胜感激。
ibeautiful
波斯汪
相关分类