有没有办法创建一个循环,将值填充到一列中接下来的 5 行空行?
Is there any way to create a loop which fills down values to the next empty 5 rows in a column?
我的 df
中有一个 dtype: object
列,我想将值填充到空单元格中。 None 我的尝试为我完成了工作,包括 df.fillna(method='ffill', inplace=True)
。
所以我所做的是将该列转换为一个列表,创建一个列表,其中包含我要在我的列中填写的值,然后 运行 以下循环:
a = ['nan', 'nan', 'nan', 'Loaded volume_Road', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'Loaded volume_Rail', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', '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', 'nan', 'nan', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail']
然后我将列表值插入到我的列中,这基本上完成了工作。
但后来我意识到我只需要为接下来的 5 行填写如下值:
#current output:
a = ['nan', 'nan', 'nan', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail']
#desired output:
a = ['nan', 'nan', 'nan', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', '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', 'nan', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan']
我的 df
中有一个 dtype: object
列,我想将值填充到空单元格中。 None 我的尝试为我完成了工作,包括 df.fillna(method='ffill', inplace=True)
。
所以我所做的是将该列转换为一个列表,创建一个列表,其中包含我要在我的列中填写的值,然后 运行 以下循环:
a = ['nan', 'nan', 'nan', 'Loaded volume_Road', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'Loaded volume_Rail', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', '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', 'nan', 'nan', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail']
然后我将列表值插入到我的列中,这基本上完成了工作。
但后来我意识到我只需要为接下来的 5 行填写如下值:
#current output:
a = ['nan', 'nan', 'nan', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail']
#desired output:
a = ['nan', 'nan', 'nan', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', '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', 'nan', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'Loaded volume_Road', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'Loaded volume_Rail', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan', 'nan']