我想计算前两行的平均值,并在数据框中填充NAN。 2010-19
栏中只有几行缺少值。
我尝试使用bfill
和ffill
,但是它仅捕获上一个或下一个行/列的值并填充NAN。
我的示例数据集有7列,如下所示:
X 1990-2000 2000-2010 2010-19 1990-2000 2000-2010 2010-19
Hyderabad 10 20 NAN 1 3 NAN
我想要的输出:
X 1990-2000 2000-2010 2010-19 1990-2000 2000-2010 2010-19
Hyderabad 10 20 15 1 3 2
答案 0 :(得分:0)
要以这种方式逐行使用fillna
,一个简单的解决方案是提供一个熊猫系列作为fillna
的参数。这将根据索引替换NaN
值。
由于列名重复,因此以下代码使用列索引。假设一个名为df
的数据框:
col_indices = [3, 6]
for i in col_indices:
means = df.iloc[:, [i-1, i-2]].mean(axis=1)
df.iloc[:, i].fillna(means, inplace=True)
这将用NaN
中每列左侧两列的平均值填充col_indices
值。