我有一个Pandas DataFrame,temp_df,它有一堆列,包括7个滞后列(t-1, t-2, ..., t-7)。
t-1 t-2 t-3 t-4 t-5 t-6 t-7
date
2010-01-08 81.0 104.0 124.0 5.0 113.0 34.0 101.0
2010-01-09 67.0 81.0 104.0 124.0 5.0 113.0 34.0
2010-01-10 89.0 67.0 81.0 104.0 124.0 5.0 113.0
2010-01-11 132.0 89.0 67.0 81.0 104.0 124.0 5.0
2010-01-12 105.0 132.0 89.0 67.0 81.0 104.0 124.0我希望将第二行的滞后列更改为与第一行相同。因此,理想情况下,在更改之后,它应该是这样的:
t-1 t-2 t-3 t-4 t-5 t-6 t-7
date
2010-01-08 81.0 104.0 124.0 5.0 113.0 34.0 101.0
2010-01-09 81.0 104.0 124.0 5.0 113.0 34.0 101.0
2010-01-10 89.0 67.0 81.0 104.0 124.0 5.0 113.0
2010-01-11 132.0 89.0 67.0 81.0 104.0 124.0 5.0
2010-01-12 105.0 132.0 89.0 67.0 81.0 104.0 124.0我试过这个:
lag_cols = ["t-" + str(i) for i in range(1,8)]
temp_df.iloc[1][lag_cols] = temp_df.iloc[0][lag_cols]但它不会改变temp_df。
你知道这是为什么/如何实现这种改变吗?
谢谢!
发布于 2018-03-08 22:22:15
你可以像这样分配给locd切片-
df.loc[df.index[1], lag_cols] = df.loc[df.index[0], lag_cols]
df
t-1 t-2 t-3 t-4 t-5 t-6 t-7
date
2010-01-08 81.0 104.0 124.0 5.0 113.0 34.0 101.0
2010-01-09 81.0 104.0 124.0 5.0 113.0 34.0 101.0
2010-01-10 89.0 67.0 81.0 104.0 124.0 5.0 113.0
2010-01-11 132.0 89.0 67.0 81.0 104.0 124.0 5.0
2010-01-12 105.0 132.0 89.0 67.0 81.0 104.0 124.0请注意,loc只接受标签,所以您需要跳过几圈,但非常可行。
https://stackoverflow.com/questions/49183425
复制相似问题