为了账号安全,请及时绑定邮箱和手机立即绑定

重采样错误:ValueError:无法使用方法或限制重新索引非唯一索引

重采样错误:ValueError:无法使用方法或限制重新索引非唯一索引

凤凰求蛊 2022-11-01 17:08:15
我的数据框如下所示:    timestamp2020-03-01 01:11:42.520      -674.02020-03-01 02:00:48.778      -700.02020-03-01 02:00:58.850      -702.02020-03-01 11:45:23.741     -1249.02020-03-02 01:56:51.021     -1229.02020-03-02 01:56:51.021      -917.02020-03-02 01:56:51.021      -837.0我尝试做的是以下内容:cum = (orders[['cum']]        .resample('1S')        .bfill()        .fillna('ffill')      )但是后来我收到标题错误消息,知道这意味着什么吗?谢谢您的帮助!
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

一个想法是首先过滤重复的索引值以进行重新采样,就像您的解决方案一样,然后过滤重复到added系列,按楼层更改索引并通过排序添加到原始索引值:


print (orders)

                            cum

timestamp                      

2020-03-01 01:11:42.520  -674.0

2020-03-01 02:00:48.778  -700.0

2020-03-01 02:00:58.850  -702.0

2020-03-01 11:45:23.741 -1249.0

2020-03-02 01:56:51.021 -1229.0

2020-03-02 01:56:51.021  -917.0

2020-03-02 01:56:51.021  -837.0

2020-03-02 01:56:54.021   -67.0


mask = orders.index.duplicated()

cum = (orders.loc[~mask, 'cum']

        .resample('1S')

        .bfill()

        .ffill()

      )

added = orders.loc[mask, 'cum']

added.index = added.index.floor('S')

cum = added.append(cum).sort_index()

print (cum.tail(10))

timestamp

2020-03-02 01:56:47   -1229.0

2020-03-02 01:56:48   -1229.0

2020-03-02 01:56:49   -1229.0

2020-03-02 01:56:50   -1229.0

2020-03-02 01:56:51   -1229.0

2020-03-02 01:56:51    -917.0

2020-03-02 01:56:51    -837.0

2020-03-02 01:56:52     -67.0

2020-03-02 01:56:53     -67.0

2020-03-02 01:56:54     -67.0

Name: cum, dtype: float64


查看完整回答
反对 回复 2022-11-01
  • 1 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信