【发布时间】:2021-08-22 22:41:53
【问题描述】:
我有一个以下熊猫数据框。我需要一个代码来循环数据帧并找到每个 NaN 值并在 3X3 窗口中提取它周围的所有相邻像素,并将提取的数据帧保存到新的数据帧中,其中还包括 NaN 值。
import pandas as pd
import numpy as np
d= {1: [5, 5.11, 5.6, 5.9, 4.8, 6], 3: [4, 5, 15, 25, 40, 10],6: [77, 47, 55, 59, np.nan, 5],
7: [np.nan, 32, 40, 33, 30, 6],9: [10, 11, 12, 45, 14, 15],15: [3, 5, 9, 12, 11, 12]}
data_miss=pd.DataFrame(data=d)
示意图见下图:
在此图中,绿色和黄色两个矩形显示每个 NaN 值周围的选定值。我需要一个代码,它考虑边界中的 NaN 值,并且不会在边界中遇到错误,例如绿色矩形中的选定值,即只选择了数据框内的值。另外,请考虑列索引不是按顺序编号的。
【问题讨论】:
-
你看过
DataFrame.shift()吗? -
我认为我的问题有所不同。我们不能仅仅通过移动行和列来解决它。
标签: python pandas dataframe filter nan