Python 为什么数据帧不更新?
我有一个portfolio类,我想创建一个AddStockShares函数来检查一只股票是否存在,如果存在,它会将股票的数量添加到现有的股票中,或者抛出一个例外。我使用iloc编写了一个查询,以便根据给定的股票代码获得我想要的股票价值,但当我添加新股票时,股票数据框不会更新,即使我在函数中打印结果时,它是正确的。有什么建议吗Python 为什么数据帧不更新?,python,pandas,class,dataframe,Python,Pandas,Class,Dataframe,我有一个portfolio类,我想创建一个AddStockShares函数来检查一只股票是否存在,如果存在,它会将股票的数量添加到现有的股票中,或者抛出一个例外。我使用iloc编写了一个查询,以便根据给定的股票代码获得我想要的股票价值,但当我添加新股票时,股票数据框不会更新,即使我在函数中打印结果时,它是正确的。有什么建议吗 import numpy as np import pandas as pd class Portfolio(object): """description of cla
import numpy as np
import pandas as pd
class Portfolio(object):
"""description of class"""
array_of_stock_prices = []
array_of_stock_names = []
array_of_shares=[]
stocks = pd.DataFrame(np.column_stack([array_of_stock_prices, array_of_stock_names,array_of_shares]))
def __init__(self):
print()
def AddStock(self, stock_ticker, stock_price,num_shares):
if stock_ticker in self.array_of_stock_names:
raise ValueError('Ticker already exists')
else:
self.array_of_stock_names.append(stock_ticker)
self.array_of_stock_prices.append(stock_price)
if(num_shares<0):
raise ValueError('Number of shares cannot be negative,Check again')
else:
self.array_of_shares.append(num_shares)
self.stocks = pd.DataFrame(np.column_stack([self.array_of_stock_names, self.array_of_stock_prices,self.array_of_shares]),
columns=['Ticker', 'Price','Shares'])
def BuyStockShares(self, stock_ticker, num_shares):
if stock_ticker in self.array_of_stock_names:
x=int(self.stocks.loc[self.stocks['Ticker']==stock_ticker,'Shares'])+num_shares
print(x)
else:
raise ValueError('Stock does not exist.Add stock first')
por=Portfolio()
por.AddStock('AAPLE',100,200)
por.AddStock('SASA',500,10)
por.AddStock('xv',500,50)
por.BuyStockShares('xv',1000)
print(por.stocks)
将numpy导入为np
作为pd进口熊猫
类别组合(对象):
“”“类的说明”“”
股票价格数组=[]
数组\u的\u股票\u名称=[]
数组\u的\u共享=[]
stocks=pd.DataFrame(np.column_stack([array_of_stock_price,array_of_stock_name,array_of_shares]))
定义初始化(自):
打印()
def AddStock(self、股票代码、股票价格、股数):
如果股票代码在股票名称的self.array中:
raise VALUE ERROR('报价器已存在')
其他:
self.array\u of\u stock\u names.append(stock\u ticker)
self.array\u of\u stock\u prices.append(stock\u prices)
如果(num_shares您需要更新该行
def BuyStockShares(self, stock_ticker, num_shares):
if stock_ticker in self.array_of_stock_names:
self.stocks.loc[self.stocks['Ticker']==stock_ticker,'Shares']=int(self.stocks.loc[self.stocks['Ticker']==stock_ticker,'Shares'])+num_shares
else:
raise ValueError('Stock does not exist.Add stock first')
“检查股票是否存在,如果存在,则添加股票数量”您的代码是相反的,仅在股票不存在时添加,如果股票已经存在则引发错误。决定要添加哪一种股票。如果股票存在还是不存在,是否要追加?