有没有一种方法可以获取熊猫中前两列的平均值?

时间:2019-05-04 20:44:55

标签: python python-3.x pandas dataframe nan

我想计算前两行的平均值,并在数据框中填充NAN。 2010-19栏中只有几行缺少值。

我尝试使用bfillffill,但是它仅捕获上一个或下一个行/列的值并填充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

1 个答案:

答案 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值。