小编ds8*_*882的帖子

数据帧单元格被锁定并用于运行余额计算,条件是同一行上另一个单元格的结果

假设我有以下数据框:

import pandas as pd
df = pd.DataFrame()

df['A'] = ('1/05/2019','2/05/2019','3/05/2019','4/05/2019','5/05/2019','6/05/2019','7/05/2019','8/05/2019','9/05/2019','10/05/2019','11/05/2019','12/05/2019','13/05/2019','14/05/2019','15/05/2019','16/05/2019','17/05/2019','18/05/2019','19/05/2019','20/05/2019')

df['B'] = ('SIT','SCLOSE', 'SHODL', 'SHODL', 'SHODL', 'SHODL', 'SHODL', 'SELL','SIT','SIT','BCLOSE', 'BHODL', 'BHODL', 'BHODL', 'BHODL', 'BHODL', 'BHODL','BUY','SIT','SIT')

df['C'] = (0.00,1.00,10.00, 5.00,6.00,-6.00, 6.00, 0.00,0.00,0.00,-8.00,33.00,-15.00,6.00,-1.00,5.00,10.00,0.00,0.00,0.00)

df.loc[19, 'D'] = 100.0000
Run Code Online (Sandbox Code Playgroud)

可以看出,我在最后一行以 100 开始 D 列。

我正在尝试为 D 列编写计算代码,因此当 B 列显示买入或卖出时,从底部行(第 19 行)开始,然后 D 列上的数字被锁定(例如 100)并用于基于每个 SHODL 或 BHODL 的 C 列,直到显示 BCLOSE 或 SCLOSE 之后的行。

锁定的数字用于根据 C 列中的百分比计算运行余额。正如您在第 16 行中看到的,C 列的“10”代表 10%。由于 100 的 10% = 10,新的运行余额为 110。

第 15 行 C 列有 5%,因此将 …

python dataframe pandas

6
推荐指数
1
解决办法
309
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1