问题描述
假设我有一个格式为
的数据框index names
1 Gina
2 George
3 John
4 Alex
5
6
7
8
9 Nathan
10
11
12
13
14 Alice
15
16
17
18
我想像这样改造它
index names
1 Gina
2 George
3 John
4 Alex
5 Alex
6 Alex
7 Alex
8 Alex
9 Alex
10 Nathan
11 Nathan
12 Nathan
13 Nathan
14 Alice
15 Alice
16 Alice
17 Alice
18 Alice
基本上,我必须将值复制粘贴到索引中4次。我所做的就是创建一个列表
for i in range(4,100,5):
loop.append(i)
我每次都需要在其中复制我的名字的值,然后我开始考虑以表单的形式创建一个简单的循环
for i in loop:
name1[i+1,0]= name1[i,0]
name1[i+2,0]
name1[i+3,0]
name1[i+4,0]
但是我收到一个错误,形式是
File "pandas\_libs\index_class_helper.pxi",line 109,in pandas._libs.index.Int64Engine._check_type
KeyError: (3,0)
编辑:因为也许我不太清楚。我有一个带有空值的数据框。如您所见,索引4的值为Alex,索引9的值为Nathan,索引14的值为Alice。我想将该值复制粘贴到接下来的4行中。这是定期发生的。因此,我创建了一个列表,其中有要复制的名称的索引[4,9,14,19,24,...,95],然后执行循环以将名称从索引复制到接下来的4行
解决方法
我认为您正在尝试实现相当于ffill
的熊猫。尝试使用以下代码:
c = ['names']
df.loc[:,c] = df.loc[:,c].ffill()
,
我也没有收到您的问题,但是比@oreopot答案更简单:
model