无法用所需索引重新索引dataframe

2024-04-26 17:35:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我在pandas中有一个数据帧df,如下所示:

                                         signal1
timestamp                                       
2017-08-23 21:30:00.012                 181643.0
2017-08-23 21:31:00.002                 181635.0
2017-08-23 21:32:00.003                 181630.0
2017-08-23 21:33:00.006                 181611.0
2017-08-23 21:34:00.002                 181644.0

我有如下索引:

[2017-08-23 14:30:00-07:00, 2017-08-23 14:31:00-07:00, 2017-08-23 14:32:00-07:00, 2017-08-23 14:33:00-07:00, 2017-08-23 14:34:00-07:00, 2017-08-23 14:35:00-07:00]  

现在如果我像这样重新索引df

df = df.reindex(indexes)

输出为:

timestamp                                    signal1
2017-08-23 14:30:00-07:00                      NaN
2017-08-23 14:31:00-07:00                      NaN
2017-08-23 14:32:00-07:00                      NaN
2017-08-23 14:33:00-07:00                      NaN
2017-08-23 14:34:00-07:00                      NaN
2017-08-23 14:35:00-07:00                      NaN

我希望输出为:

signal_name                                    signal1
2017-08-23 14:30:00-07:00                      181643.0
2017-08-23 14:31:00-07:00                      181643.0
2017-08-23 14:32:00-07:00                      181643.0
2017-08-23 14:33:00-07:00                      181643.0
2017-08-23 14:34:00-07:00                      181643.0
2017-08-23 14:35:00-07:00                        NaN

我不明白为什么它没有正确地重新索引。你知道吗


Tags: 数据namepandasdfsignalnantimestampindexes
1条回答
网友
1楼 · 发布于 2024-04-26 17:35:25

reindex要做的是

Conform Series to new index with optional filling logic, placing NA/NaN in locations having no value in the previous index.

意思是在上一个索引中没有2017-08-23 14:30:00-07:00,所以它是NaN。 如果您有2017-08-23 21:30:00.012或其他原始索引,它将更改数据和索引的映射。你知道吗

Index是不可变对象。你知道吗

Immutable ndarray implementing an ordered, sliceable set. The basic object storing axis labels for all pandas objects

因此,您需要使用新索引和原始数据创建一个新实例。你知道吗

Series(data=origin_data, index=new_index)

或者

Dataframe(data=origin_data, index=new_index)

相关问题 更多 >