【发布时间】:2018-01-02 22:55:11
【问题描述】:
我有一个索引不是时间的 DataFrame。我需要将所有值从不等间距的旧索引重新调整为具有不同限制且等间距的新索引。
列中的第一个和最后一个值应保持原样(尽管它们将分配新的、扩展的索引值)。
示例代码为:
import numpy as np
import pandas as pd
%matplotlib inline
index = np.asarray((2, 2.5, 3, 6, 7, 12, 15, 18, 20, 27))
x = np.sin(index / 10)
df = pd.DataFrame(x, index=index)
df.plot();
newindex = np.linspace(0, 29, 100)
如何创建索引为 newindex 且新的 x 值是从旧的 x 值插值的 DataFrame?
第一个新的x 值应该与第一个旧的x 值相同。最后一个 x 值同上。也就是说,开头不应该有 NaN,并且最后一个旧 x 的副本在结尾处重复。
其他的应该被插值以适应新的等间距索引。
我尝试了df.interpolate(),但不知道如何针对newindex 进行插值。
提前感谢您的帮助。
【问题讨论】:
-
你看过这个问题吗? stackoverflow.com/questions/30056399/…
-
是的:大多数现有答案(和文档)都有日期或时间索引,但我的没有。如果索引是日期或时间,重新索引似乎要容易得多
标签: pandas numpy interpolation