如何选择从第一次出现开始的日期框

2024-10-02 22:24:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图建立一个贸易日志p&;L每天计算利润的计算器

我不希望它在框架中,这样它就不会弄乱数据

我期望函数的结果是删除TransactionSell的前3行,并从TransactionBuy中的第一行开始,删除TransactionBuy中的最后一行,因为如果不是这样,它将被计算为损失。因此我希望选择直到TransactionSell的最后一条记录>;0


另一种解释方式:
我想选择从
开始的帧 第一次出现(TransactionBuy<;0)
直到最后一次出现(TransactionSell>;0)
所以我想要
请记住,此帧行数或索引每次可能不同,因此并非每次我都希望删除前3行,可能是基于我拥有的数据删除前6行

对于您的ref:data.csv 电流输出:通知(44、45、46和66)

                           time  TransactionBuy  TransactionSell       Added
     44 2020-03-03 17:59:02.910        0.000000        13.134000   13.134000
     45 2020-03-03 17:59:02.910        0.000000       495.470412  495.470412
     46 2020-03-03 17:59:02.910        0.000000         0.367416    0.367416
     47 2020-03-03 19:21:53.911     -339.399798         0.000000 -339.399798
     48 2020-03-03 19:21:53.912       -0.004492         0.000000   -0.004492
     49 2020-03-03 20:16:24.467        0.000000       147.008308  147.008308
     50 2020-03-03 20:16:24.467        0.000000        64.857600   64.857600
     51 2020-03-03 20:16:24.467        0.000000       128.706304  128.706304
     52 2020-03-03 22:37:40.707     -407.888854         0.000000 -407.888854
     53 2020-03-03 23:09:47.226        0.000000       411.694238  411.694238
     54 2020-03-04 07:19:06.956     -329.905914         0.000000 -329.905914
     55 2020-03-04 07:39:48.064        0.000000        36.782438   36.782438
     56 2020-03-04 07:39:48.064        0.000000        22.980837   22.980837
     57 2020-03-04 07:39:48.064        0.000000        38.059571   38.059571
     58 2020-03-04 07:39:48.064        0.000000        43.848657   43.848657
     59 2020-03-04 07:39:48.064        0.000000       109.471160  109.471160
     60 2020-03-04 07:39:48.064        0.000000        69.434052   69.434052
     61 2020-03-05 09:25:20.725      -15.297384         0.000000  -15.297384
     62 2020-03-05 09:25:20.725     -134.850000         0.000000 -134.850000
     63 2020-03-05 09:25:20.725      -50.684721         0.000000  -50.684721
     64 2020-03-05 09:25:21.690     -676.801362         0.000000 -676.801362
     65 2020-03-05 10:19:20.014        0.000000       857.315706  857.315706
     66 2020-03-05 10:25:20.014       -100.000000       0.000000  -100.00000

我想要的是:

                          time  TransactionBuy  TransactionSell       Added

     47 2020-03-03 19:21:53.911     -339.399798         0.000000 -339.399798
     48 2020-03-03 19:21:53.912       -0.004492         0.000000   -0.004492
     49 2020-03-03 20:16:24.467        0.000000       147.008308  147.008308
     50 2020-03-03 20:16:24.467        0.000000        64.857600   64.857600
     51 2020-03-03 20:16:24.467        0.000000       128.706304  128.706304
     52 2020-03-03 22:37:40.707     -407.888854         0.000000 -407.888854
     53 2020-03-03 23:09:47.226        0.000000       411.694238  411.694238
     54 2020-03-04 07:19:06.956     -329.905914         0.000000 -329.905914
     55 2020-03-04 07:39:48.064        0.000000        36.782438   36.782438
     56 2020-03-04 07:39:48.064        0.000000        22.980837   22.980837
     57 2020-03-04 07:39:48.064        0.000000        38.059571   38.059571
     58 2020-03-04 07:39:48.064        0.000000        43.848657   43.848657
     59 2020-03-04 07:39:48.064        0.000000       109.471160  109.471160
     60 2020-03-04 07:39:48.064        0.000000        69.434052   69.434052
     61 2020-03-05 09:25:20.725      -15.297384         0.000000  -15.297384
     62 2020-03-05 09:25:20.725     -134.850000         0.000000 -134.850000
     63 2020-03-05 09:25:20.725      -50.684721         0.000000  -50.684721
     64 2020-03-05 09:25:21.690     -676.801362         0.000000 -676.801362
     65 2020-03-05 10:19:20.014        0.000000       857.315706  857.315706

Tags: 数据函数gt框架addedtime方式记录
2条回答

艾哈迈德,我想这就是你想要的:(从@mrzo扩展)

df.loc[(df['TransactionBuy'] < 0).idxmax():df.index[df['TransactionSell'] > 0][-1]]

如果您的数据帧已按时间排序:

import pandas as pd

df = pd.read_csv('file.csv')
start = df.index[df.TransactionBuy < 0][0]
end = df.index[df.TransactionSell > 0][-1]
df.loc[start:end]
time  TransactionBuy  TransactionSell       Added
47 2020-03-03  19:21:53.911     -339.399798         0.000000 -339.399798
48 2020-03-03  19:21:53.912       -0.004492         0.000000   -0.004492
49 2020-03-03  20:16:24.467        0.000000       147.008308  147.008308
50 2020-03-03  20:16:24.467        0.000000        64.857600   64.857600
51 2020-03-03  20:16:24.467        0.000000       128.706304  128.706304
52 2020-03-03  22:37:40.707     -407.888854         0.000000 -407.888854
53 2020-03-03  23:09:47.226        0.000000       411.694238  411.694238
54 2020-03-04  07:19:06.956     -329.905914         0.000000 -329.905914
55 2020-03-04  07:39:48.064        0.000000        36.782438   36.782438
56 2020-03-04  07:39:48.064        0.000000        22.980837   22.980837
57 2020-03-04  07:39:48.064        0.000000        38.059571   38.059571
58 2020-03-04  07:39:48.064        0.000000        43.848657   43.848657
59 2020-03-04  07:39:48.064        0.000000       109.471160  109.471160
60 2020-03-04  07:39:48.064        0.000000        69.434052   69.434052
61 2020-03-05  09:25:20.725      -15.297384         0.000000  -15.297384
62 2020-03-05  09:25:20.725     -134.850000         0.000000 -134.850000
63 2020-03-05  09:25:20.725      -50.684721         0.000000  -50.684721
64 2020-03-05  09:25:21.690     -676.801362         0.000000 -676.801362
65 2020-03-05  10:19:20.014        0.000000       857.315706  857.315706

相关问题 更多 >