Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 用数据帧中的当前行值填充下2行_Pandas - Fatal编程技术网

Pandas 用数据帧中的当前行值填充下2行

Pandas 用数据帧中的当前行值填充下2行,pandas,Pandas,我有一个df,比如 df.head(8) Out[105]: Next_3rdF Prev_3rdF 1979-12-21 1980-02-15 1980-01-18 1980-03-21 1980-02-15 1980-04-18 1980-03-21 1980-05-16 1980-04-18 1980-06-20 1980-05-16 1980-07-18 1980-06-20 1980-08-15 1980-07-18 1980-

我有一个df,比如

    df.head(8)
Out[105]: 
            Next_3rdF
Prev_3rdF            
1979-12-21 1980-02-15
1980-01-18 1980-03-21
1980-02-15 1980-04-18
1980-03-21 1980-05-16
1980-04-18 1980-06-20
1980-05-16 1980-07-18
1980-06-20 1980-08-15
1980-07-18 1980-09-19
从第一个索引开始,我想用第一个索引值填充下一个2行,然后用索引4值填充4,5,6,并为整个数据帧填充此模式,例如:

    df.head(8)
Out[105]: 
            Next_3rdF
Prev_3rdF            
1979-12-21 1980-02-15
1980-01-18 1980-02-15
1980-02-15 1980-02-15
1980-03-21 1980-05-16
1980-04-18 1980-05-16
1980-05-16 1980-05-16
1980-06-20 1980-08-15
1980-07-18 1980-08-15
有什么简单的方法吗


谢谢

多亏了@EdChum,我找到了一条路

df2 = pd.DataFrame(df.iloc[1::3].values, index=df.iloc[1::3].index, columns=['arranged'])
df = df.join(df2).fillna(method='ffill')

谢谢大家!

如果您只想这样做,那么
df.iloc[1:3]=df.iloc[0]
df.iloc[5:]=df.iloc[3]
将work@EdChu,数据帧有4k行,我想我可以在它上面循环,但我想知道我是否可以用更性感的方式来做:)但是你没有解释这一点,或者这个模式是否重复等等。很抱歉,你在问
df.iloc[1:3:3]=df.iloc[0::3]
?实际上,这里的问题是,您每次试图用一个标量值一次分配给2行,我建议的代码片段在这里不起作用。另一种方法是以三个步骤迭代索引,每次迭代覆盖4k行,这可能不会太慢。类似于df.iloc[:2]中idx的
.index:df.iloc[idx+1:idx+3]=df.iloc[idx]
或类似