Python 如何在pd.dataframe上对称应用fillna?
我用Camelot从PDF中自动提取表格数据。 通常,边缘检测会导致自动对齐中间单元格中的文本 因此,我需要进一步处理提取的数据帧。我想把中间对齐的文本扩展到其他单元格上,严格地说是对称复制。 因此,如果两个相邻单元格都有“value”np.nan,则两个单元格都得到复制值,如果两个单元格都有np.nan,则四个单元格都得到中间单元格的值,依此类推 这是当前数据帧的示例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
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对称结构的单元格。基于列,只有你可以填充这些单元格。根据周围的单元格填充单元格是很困难的,因为您可能需要在不同的场景中进行填充。