有没有办法得到Pandas中前两列的平均值?

2024-09-27 23:22:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我想计算前两行的平均值,并在数据帧中填充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

Tags: 数据示例nan平均值ffillbfillhyderabad
1条回答
网友
1楼 · 发布于 2024-09-27 23:22:11

要以这种方式按行使用^{},一个简单的解决方案是提供一个pandas系列作为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)

这将用col_indices中每列左侧两列的平均值填充NaN值。你知道吗

相关问题 更多 >

    热门问题