我有一个交易者交易的数据集,其中的利息变量是Buy/Sell
,它是二进制的,值为1,如果交易是买入,则为0。示例如下:
Trader Buy/Sell
A 1
A 0
B 1
B 1
B 0
C 1
C 0
C 0
我想计算每个交易者的净Buy/Sell
,这样,如果交易者有超过50%的交易作为买入,他将有一个Buy/Sell
的1,如果他有少于50%的买入,那么他将有一个Buy/Sell
的0,如果正好是50%,他将有NA(在未来的计算中将被忽略)。
所以对于交易者A来说,买入比例是(买入数量)/(交易者总数)=1/2=0.5,这就给出了NA。
对于交易者B,2/3=0.67,得出1
对于交易者C,它是1/3=0.33,这就给出了0
桌子应该是这样的:
Trader Buy/Sell
A NA
B 1
C 0
最后,我想计算总的购买数量,在本例中是1,总的交易数量(不考虑NAs)在本例中是2。我对第二个表不感兴趣,我只感兴趣的是购买的总数量和Buy/Sell
的总数量。
我怎样才能在熊猫身上做到这一点?
收益率
我最初的答案是使用自定义聚合器,
categorize
:虽然调用自定义函数可能很方便,但性能通常是 与内置函数相比,使用自定义函数的速度要慢得多 聚合器(例如
groupby/agg/mean
)。内置聚合器是 Cythonized,而自定义函数将性能降低为纯Python 循环速度。当组数为 很大。例如,对于包含1000个组的10000行数据帧
using_select
比using_custom_function
快50倍以上:相关问题 更多 >
编程相关推荐