有什么方法可以创建一个将值填充到列中下一个空5行的循环吗?

问题描述

我的dtype: object中有一个df列,我想将值填写到空白单元格中。我的尝试都没有为我带来这份工作,包括df.fillna(method='ffill',inplace=True)

所以我要做的是将列转换为列表,创建了一个列表,并在其中填充了要填充的值,然后运行以下循环:

a = ['nan','nan','Loaded volume_Road','Loaded volume_Rail','nan']
Name = ["Loaded volume_Road","Loaded volume_Rail"]

for x in range(len(a)):
    if a[x] not in Name:
        a[x] = a[x-1]
print(a)     

#output:
a = ['nan','Loaded volume_Rail']

然后我将列表值插入到我的列中,这基本上完成了工作。

但是后来我意识到我只需要填写以下5行的值:

#current output:
a = ['nan','Loaded volume_Rail']

#desired output:
a = ['nan','nan']

您有什么技巧来实现#desired output吗?我的想法不多了:-(

非常感谢!

解决方法

尝试一下

indexes = [i for i in range(len(a)) if a[i] != 'nan']

for idx in indexes:
    a[idx: idx + 6] = [a[idx]] * 6
print(a)

输出:

['nan','nan','Loaded volume_Road','Loaded volume_Rail','nan']

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...