【发布时间】:2017-07-27 07:02:24
【问题描述】:
使用数据框
date_index value
2013-01-01 0.50
2013-01-01 0.50
2013-01-01 0.50
2013-01-01 0.50
2013-01-02 1.50
2013-01-02 1.50
2013-01-02 1.50
2013-01-02 1.50
2013-01-03 0.98
2013-01-03 0.98
2013-01-03 0.98
2013-01-03 0.98
2013-01-04 NaN
2013-01-04 1.00
2013-01-04 NaN
2013-01-04 NaN
2013-01-05 1.90
2013-01-05 1.90
2013-01-05 1.90
2013-01-05 1.90
2013-01-06 2.50
2013-01-06 2.50
2013-01-06 2.50
2013-01-06 2.50
2013-01-07 2.89
2013-01-07 2.89
2013-01-07 2.89
2013-01-07 2.89
2013-01-08 NaN
2013-01-08 NaN
2013-01-08 NaN
2013-01-08 NaN
2013-01-09 3.90
2013-01-09 3.90
2013-01-09 3.90
2013-01-09 3.90
2013-01-10 5.00
2013-01-10 5.00
2013-01-10 5.00
2013-01-10 5.00
将以上内容复制到剪贴板
import pandas as pd
df = pd.read_clipboard()
df = df.set_index('date_index')
使用插值填充nan的
x = df.interpolate(method='linear', axis=0, limit=None, inplace=False, limit_direction='both', downcast=None)
我本来希望插值考虑相同的 x 点,因此每个 x 的 y 值应该相同。然而事实并非如此。
nan 的日期是 2013-01-04 和 2013-01-08
之前
2013-01-04 NaN
2013-01-04 1.00
2013-01-04 NaN
2013-01-04 NaN
2013-01-08 NaN
2013-01-08 NaN
2013-01-08 NaN
2013-01-08 NaN
之后
2013-01-04 0.990
2013-01-04 1.000
2013-01-04 1.300
2013-01-04 1.600
2013-01-08 3.092
2013-01-08 3.294
2013-01-08 3.496
2013-01-08 3.698
我是否正确理解了插值的使用?我期待
的结果2013-01-04 1.000
2013-01-04 1.000
2013-01-04 1.000
2013-01-04 1.000
2013-01-08 3.945
2013-01-08 3.945
2013-01-08 3.945
2013-01-08 3.945
【问题讨论】:
标签: python pandas interpolation