python first_python pandas-groupby.first()返回NaT值

我正在检索以下数据框的cummax()值,

exit_price trend netgain high low MFE_pr

exit_time

2000-02-01 01:00:00 1400.25 -1 1.00 1401.50 1400.25 1400.25

2000-02-01 01:30:00 1400.75 -1 0.50 1401.00 1399.50 1399.50

2000-02-01 02:00:00 1400.00 -1 1.25 1401.00 1399.75 1399.50

2000-02-01 02:30:00 1399.25 -1 2.00 1399.75 1399.25 1399.25

2000-02-01 03:00:00 1399.50 -1 1.75 1400.00 1399.50 1399.25

2000-02-01 03:30:00 1398.25 -1 3.00 1399.25 1398.25 1398.25

2000-02-01 04:00:00 1398.75 -1 2.50 1399.00 1398.25 1398.25

2000-02-01 04:30:00 1400.00 -1 1.25 1400.25 1399.00 1398.25

2000-02-01 05:00:00 1400.25 -1 1.00 1400.50 1399.25 1398.25

2000-02-01 05:30:00 1400.50 -1 0.75 1400.75 1399.50 1398.25

具有以下公式

trade ['MFE_pr'] = np.nan

trade ['MFE_pr'] = trade ['MFE_pr'].where(trade ['trend']<0, trade.high.cummax())

trade ['MFE_pr'] = trade ['MFE_pr'].where(trade ['trend']>0, trade.low.cummin())

现在,我想检索从每一行取cummax()的行的时间戳.

我一直在尝试以下方法:

trade['timestamp']= trade.index

trade ['MFE_ts'] = trade.groupby('MFE_pr')['timestamp'].first()

但我收到的结果是:

exit_price trend netgain high low MFE_pr \nexit_time

2000-02-01 01:00:00 1400.25 -1 1.00 1401.50 1400.25 1400.25

2000-02-01 01:30:00 1400.75 -1 0.50 1401.00 1399.50 1399.50

2000-02-01 02:00:00 1400.00 -1 1.25 1401.00 1399.75 1399.50

2000-02-01 02:30:00 1399.25 -1 2.00 1399.75 1399.25 1399.25

2000-02-01 03:00:00 1399.50 -1 1.75 1400.00 1399.50 1399.25

2000-02-01 03:30:00 1398.25 -1 3.00 1399.25 1398.25 1398.25

2000-02-01 04:00:00 1398.75 -1 2.50 1399.00 1398.25 1398.25

2000-02-01 04:30:00 1400.00 -1 1.25 1400.25 1399.00 1398.25

2000-02-01 05:00:00 1400.25 -1 1.00 1400.50 1399.25 1398.25

2000-02-01 05:30:00 1400.50 -1 0.75 1400.75 1399.50 1398.25

timestamp MFE_ts

exit_time

2000-02-01 01:00:00 2000-02-01 01:00:00 NaT

2000-02-01 01:30:00 2000-02-01 01:30:00 NaT

2000-02-01 02:00:00 2000-02-01 02:00:00 NaT

2000-02-01 02:30:00 2000-02-01 02:30:00 NaT

2000-02-01 03:00:00 2000-02-01 03:00:00 NaT

2000-02-01 03:30:00 2000-02-01 03:30:00 NaT

2000-02-01 04:00:00 2000-02-01 04:00:00 NaT

2000-02-01 04:30:00 2000-02-01 04:30:00 NaT

2000-02-01 05:00:00 2000-02-01 05:00:00 NaT

2000-02-01 05:30:00 2000-02-01 05:30:00 NaT

我究竟做错了什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值