Python 如何在pd.dataframe上对称应用fillna?

Python 如何在pd.dataframe上对称应用fillna?,python,pandas,Python,Pandas,我用Camelot从PDF中自动提取表格数据。 通常,边缘检测会导致自动对齐中间单元格中的文本 因此,我需要进一步处理提取的数据帧。我想把中间对齐的文本扩展到其他单元格上,严格地说是对称复制。 因此,如果两个相邻单元格都有“value”np.nan,则两个单元格都得到复制值,如果两个单元格都有np.nan,则四个单元格都得到中间单元格的值,依此类推 这是当前数据帧的示例 Column_1 Column_2 Column_3 Column_4 5 np.n

我用Camelot从PDF中自动提取表格数据。 通常,边缘检测会导致自动对齐中间单元格中的文本

因此,我需要进一步处理提取的数据帧。我想把中间对齐的文本扩展到其他单元格上,严格地说是对称复制。

因此,如果两个相邻单元格都有“value”np.nan,则两个单元格都得到复制值,如果两个单元格都有np.nan,则四个单元格都得到中间单元格的值,依此类推

这是当前数据帧的示例

Column_1     Column_2    Column_3  Column_4 

5            np.nan           6          np.nan
np.nan       some Text        np.nan       12
7           some other Text     8          np.nan
预期结果应该是:

 Column_1    Column_2    Column_3  Column_4 

     5        np.nan         6       12
some Text   some Text    some Text   12
     7     some other Text   8       12

要直接填充文本以替换np.nan,可以使用此选项:

df['column_name'] = np.where(df['column_name'].isnull(), 'text', df['column_name'])
要基于特定列的上一行或下一行值填充值,请执行以下操作:

df.fillna( method ='bfill/ffill', inplace = True)

非常感谢你!我知道这个解决方案,我正在努力寻找相关的单元格来填充。我的问题是,我只需要填充那些周围有np.NAN对称结构的单元格。基于列,只有你可以填充这些单元格。根据周围的单元格填充单元格是很困难的,因为您可能需要在不同的场景中进行填充。