Pandas 用数据帧中的当前行值填充下2行
我有一个df,比如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.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]
或类似