猿问

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

我的数据框如下所示:


    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

我尝试做的是以下内容:


cum = (orders[['cum']]

        .resample('1S')

        .bfill()

        .fillna('ffill')

      )

但是后来我收到标题错误消息,知道这意味着什么吗?谢谢您的帮助!


凤凰求蛊
浏览 110回答 1
1回答

大话西游666

一个想法是首先过滤重复的索引值以进行重新采样,就像您的解决方案一样,然后过滤重复到added系列,按楼层更改索引并通过排序添加到原始索引值:print (orders)                            cumtimestamp                      2020-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.02020-03-02 01:56:54.021   -67.0mask = 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))timestamp2020-03-02 01:56:47   -1229.02020-03-02 01:56:48   -1229.02020-03-02 01:56:49   -1229.02020-03-02 01:56:50   -1229.02020-03-02 01:56:51   -1229.02020-03-02 01:56:51    -917.02020-03-02 01:56:51    -837.02020-03-02 01:56:52     -67.02020-03-02 01:56:53     -67.02020-03-02 01:56:54     -67.0Name: cum, dtype: float64
随时随地看视频慕课网APP

相关分类

Python
我要回答