【发布时间】:2021-07-24 12:56:35
【问题描述】:
我有一个 pandas 数据框,其中包含交易者随时间推移的头寸,我这样创建:
history = pd.read_csv(r"history.csv")
history = DataFrame(history, columns=['Symbol', 'Size', 'Entry Price',
'Mark Price', 'PNL (ROE %)', 'Last Position Update'])
frames = [historylast, history]
history = pd.concat(frames)
positions = historylast['Symbol'].tolist()
historylast_symbol_set = set(positions)
其中historylast 是包含当前位置的最后一个抓取的数据库,history 是具有先前位置的本地副本。结果是这样的:
history = history.sort_values('Symbol')
print (history)
Symbol Size ... PNL (ROE %) Last Position Update
0 BNBUSDT 250.800 ... 7702.095588 2021-05-01 03:12:09
5 BNBUSDT 1000.800 ... 43351.359565 2021-04-29 03:51:41
0 BTCUSDT 54.422 ... 513277.155788 2021-04-25 21:03:13
0 BTCUSDT 54.422 ... 328896.563684 2021-04-25 21:03:13
1 DOGEUSDT 2600000.000 ... 46896.408000 2021-05-01 08:24:51
此数据框是通过将交易者的头寸随时间推移汇总而创建的。 我想做的是查看每个硬币的最后一个可用“大小”是否相对于前一个发生了变化。例如,对于 BNBUSDT,最后一个大小为 250,相对于之前的 1000 个大小减少了 75%。对于 BTCUSDT,大小自上次以来没有变化。而对于 DOGEUSDT,没有以前的数据可以比较,所以它仍然是 100% 的买入头寸。
为了实现这一点,我虽然应该将数据帧分成不同的数据帧,每个符号一个,并使用 for 循环计算并保存百分比变化,但我遇到了困难,想知道是否有更好的方法。任何帮助将不胜感激
【问题讨论】:
-
不,因为我无法比较因子变量 'Symbol' 的每个级别的两个连续行
标签: python pandas dataframe time-series comparison