熊猫 - 线上插值

时间:2018-01-10 20:04:21

标签: python pandas interpolation

我有一个带有几个空列的DataFrame,我想在每一行上进行插值以填充它们。这是一个例子:

3 12 18 24 36 120 180 360 2018-01-03 00:00:00 1.3913 1.8034 NaN 1.9313 2.0149 2.4471 NaN 2.7855 2018-01-04 00:00:00 1.3964 1.8007 NaN 1.9515 2.037 2.4525 NaN 2.7863 2018-01-05 00:00:00 1.3936 1.7927 NaN 1.9599 2.0596 2.4763 NaN 2.8105 2018-01-08 00:00:00 1.4063 1.7797 NaN 1.9579 2.057 2.48 NaN 2.8113 2018-01-09 00:00:00 1.4322 1.777 NaN 1.9641 2.071 2.5384 NaN 2.8824

当我使用interpolate方法与axis=1时,我得到了相同的DataFrame,没有任何插值。我已经尝试循环遍历所有行并更改插值方法,但我仍然没有得到插值。 对这可能是什么有任何猜测?

这是一个例子:

ExampleDF.iloc[-1] Out[42]: 3 1.4322 12 1.777 18 NaN 24 1.9641 36 2.071 120 2.5384 180 NaN 360 2.8824

test.iloc[-1].interpolate(method='cubic') Out[43]: 3 1.4322 12 1.777 18 NaN 24 1.9641 36 2.071 120 2.5384 180 NaN 360 2.8824

1 个答案:

答案 0 :(得分:0)

试试这个:

sample = [[1.3913, 1.8034, NaN, 1.9313, 2.0149, 2.4471, NaN, 2.7855],[1.3964, 1.8007, NaN, 1.9515,  2.037, 2.4525, NaN, 2.7863],[1.3936, 1.7927, NaN, 1.9599, 2.0596, 2.4763, NaN, 2.8105],[1.4063, 1.7797, NaN, 1.9579,  2.057, 2.48, NaN, 2.8113],[1.4322,  1.777, NaN, 1.9641,  2.071, 2.5384, NaN, 2.8824]]

df = pd.DataFrame(sample)

df.iloc[-1].interpolate(method='cubic')

运作良好。数据框似乎是错误定义的。