Python 使用行和列值插入缺少的值

Python 使用行和列值插入缺少的值,python,pandas,dataframe,interpolation,Python,Pandas,Dataframe,Interpolation,在PythonPandas中,我应该如何用一些NaN行和列交互地插入数据帧? 例如,以下数据帧- 90 92.5 95 100 110 120 Index 1 NaN NaN NaN NaN NaN NaN 2

在PythonPandas中,我应该如何用一些NaN行和列交互地插入数据帧? 例如,以下数据帧-

             90  92.5        95       100       110       120  
Index                                                           
1            NaN   NaN       NaN       NaN       NaN       NaN   
2       0.469690   NaN       NaN       NaN       NaN       NaN   
3       0.478220   NaN  0.492232  0.505685       NaN       NaN   
4       0.486377   NaN  0.503853  0.518890  0.550517       NaN   
5       0.485862   NaN  0.502130  0.515076  0.537675  0.564383   
我的目标是有效地插值和填充所有的NaN,也就是说,插值任何可能的NaN。但是如果我使用

df.interpolate(inplace=True, axis=0, method='spline', order=1, limit=20, limit_direction='both')
它将返回“TypeError:无法使用所有NaN进行插值。”

您可以尝试此操作(谢谢):


也许是因为第二栏全是NaN。还有一排排的楠。对于某些算法进行插值,可以确定< <代码> df.dType < /代码>都是类型<代码> FooLox64 <代码>,而不是<代码>对象< /代码>,因为插值方法将考虑< <代码> df>代码>填充所有<代码> NANS < /代码>,如果它属于后一种情况。等效但更紧凑的样式<代码> df.DROPNA(轴=1,如何=‘全部’)。@Boud,说得好,谢谢!我完全忘记了
.dropna()
。。。是的,看起来好多了now@MaxU谢谢,但正如您所看到的,这会为所有NaN字段生成相同的值。你知道有没有一种方法可以进行插值吗。我猜插值必须进行多次,每次都必须找到可能的最佳值,即第一次运行时第5行第92.5列。
In [138]: new = df.dropna(axis=1, how='all').interpolate(limit=20, limit_direction='both')

In [139]: new
Out[139]:
             90        95       100       110       120
Index
1      0.469690  0.492232  0.505685  0.550517  0.564383
2      0.469690  0.492232  0.505685  0.550517  0.564383
3      0.478220  0.492232  0.505685  0.550517  0.564383
4      0.486377  0.503853  0.518890  0.550517  0.564383
5      0.485862  0.502130  0.515076  0.537675  0.564383