gpt4 book ai didi

python - Pandas 添加系列以保持连续总和

转载 作者:太空宇宙 更新时间:2023-11-03 19:10:59 25 4
gpt4 key购买 nike

我刚刚开始使用 Python 并使用 pandas 编写一个小型股票投资组合应用程序。我遇到的问题是在我的仓位类别中,它创建了 pandas Series 来表示根据交易随时间推移每只股票所拥有的股票数量。因此,如果我在 2012 年 10 月 10 日买入 50 股 IBM 股票,并在 2012 年 10 月 14 日卖出 10 股,我希望 IBM 的position.shares 系列为:

  • 2012 年 10 月 10 日:50
  • 2012 年 10 月 11 日:50
  • 2012 年 10 月 12 日:50
  • 2012 年 10 月 13 日:50
  • 2012年10月14日:40
  • 2012年10月15日:40

我计划通过添加从交易日期到当前日期的系列,然后将每个系列相加为一个来实现此目的。我正在尝试使用 Series.add 函数,因为我需要一个填充值来确保代表新交易的新股票系列不为旧头寸的 NaN。问题是我不知道如何初始化可以正确添加的可用系列。我正在下面的代码中尝试 Series(0),它只会返回:

Series([], dtype=float64)

我还尝试使用一些值为 0 的随机日期来初始化它,但即使在向其中添加不同的系列之后,我仍然不断地恢复该系列。

这是我的代码:

class Position: 
def __init__(self, trades):
self.ticker = trades[0].ticker #grab the ticker we are dealing with
self.shares = Series()
for trade in trades:
if trade.tranType == 0 or trade.tranType == 2:
direction = 1 #a buy increases share amount
else:
direction = -1 # a sell decreases share amount
dateRangeInFolio = pd.DateRange(trade.date, datetime.datetime.today()) #from the event date through today
shareSer = Series(trade.shares * direction, index=dateRangeInFolio)
self.shares.add(shareSer, fill_value=0)
print self.shares

感谢您的帮助。如果我遗漏了一些非常基本的东西,我深表歉意。

最佳答案

so Series.add 返回求和系列...我以为它只是将其添加到已经存在的 Series 对象中。所以我这样做了:

self.shares = self.shares.add(shareSer, fill_value=0)

而不是

self.shares.add(shareSer, fill_value=0)

并且它有效。

关于python - Pandas 添加系列以保持连续总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12995222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com