我有一个带有几个空列的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
答案 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')
运作良好。数据框似乎是错误定义的。