Python 创建事务数据帧时遇到问题

Python 创建事务数据帧时遇到问题,python,pandas,dataframe,Python,Pandas,Dataframe,我试图创建一个python数据框架来跟踪我的股票买卖和利润。现在我有一个熊猫数据框,其中一列有价格,另一列有买入卖出持有触发器,还有一个时间戳 我试图创建一个数据框架来跟踪交易的买卖价格和利润,但没有成功,很难找到最后一笔交易来更新它。这里我试图为事务创建一个数据框架 Tdf.tail的错误和电流输出 空数据帧 栏目:[购买、出售、利润] 索引:[] 单位置索引器超出范围 df看起来像什么 时间戳价格决定 2019-08-19 3.0000 1.0 2019-08-20 2.6

我试图创建一个python数据框架来跟踪我的股票买卖和利润。现在我有一个熊猫数据框,其中一列有价格,另一列有买入卖出持有触发器,还有一个时间戳

我试图创建一个数据框架来跟踪交易的买卖价格和利润,但没有成功,很难找到最后一笔交易来更新它。这里我试图为事务创建一个数据框架

Tdf.tail的错误和电流输出

空数据帧
栏目:[购买、出售、利润]
索引:[]
单位置索引器超出范围

df看起来像什么

时间戳价格决定
2019-08-19  3.0000       1.0
2019-08-20  2.6200       0.0
2019-08-21  2.3200       0.0
2019-08-22  2.1400       0.0
2019-08-23 1.9500-1.0

Price = [['2019-08-19',3.0000,1.0],['2019-08-20',2.6200,0.0],['2019-08-21',2.3200,0.0],['2019-08-22',2.1400,0.0],['2019-08-23',1.9500,-1.0]]
df = pd.DataFrame(Price,columns = ['timestamp','Price','decide'])
df.set_index('timestamp',inplace=True)
Trades = []
Tdf = pd.DataFrame(Trades,columns = ['Buy','Sell','Profit'])

for y in df.index.values:#Buy = 1.0 , Sell = -1.0
    if df['decide'].iloc[y] == 1.0:
        Tdf.append({'Buy' : df['Price'][y]},ignore_index=True)

    if df['decide'].iloc[y] == -1.0:
        profit =  df['Price'].iloc[y] - Tdf['Buy'].iloc[-1]
        Tdf.at[-1,'Sell'] = df['Price'].iloc[y]
        Tdf.at[-1,'Profit'] = profit
预计将看到Tdf的样子

买卖利润

0 3.00 1.95-1.05

以下是我必须做的:

df = df[-30:]
df.reset_index(inplace=True)
try:
    for y in df.index.values:

         if y == 0 and df['buy_sell'].iloc[y] == 1.0:
            Tdf.at[y,'Buy'] = df['Price'].iloc[y]
            buyIndex = y

         if df['buy_sell_hold'].iloc[y] == 1.0:
            Tdf.at[y,'Buy'] = df['Price'].iloc[y]
            buyIndex = y

         if y == 0 and df['buy_sell_hold'].iloc[y] == -1.0:
            print('sold something we did not buy')

         elif df['buy_sell_hold'].iloc[y] == -1.0:
            profit = df['Price'].iloc[y] - Tdf['Buy'].iloc[-1]
            Tdf.at[buyIndex,'Sell'] = df['Price'].iloc[y]
            Tdf.at[buyIndex,'Profit'] = profit

你现在看到了什么?请同时发布实际输出。刚刚添加了实际输出。请看一下。这样更好吗?