给定以下数据:
data = {'a' : [1,1,1,8,8,3,3,3,3,4,4] }
df = pd.DataFrame(data)
我现在想将整个事情向下移动 n 个组,以便保留它们当前的顺序。n=1 的移位所需的输出将是:
desired_output = {'a': [NaN,NaN,NaN,1,1,8,8,8,8,3,3] }
desired_output_df = pd.DataFrame(desired_output)
n=2 的变化应该是:
desired_output = {'a': [NaN,NaN,NaN,NaN,NaN,1,1,1,1,8,8] }
desired_output_df = pd.DataFrame(desired_output)
我一直在搞乱 groupby/transform/apply,但到目前为止还没有任何工作。如果我分组然后移位,它会移动每个组,给出以下输出:
NOT_desired_output = {'a' : [NaN, 1, 1, NaN, 8, NaN, 3,3,3, NaN, 4]}
我可以通过迭代来暴力破解它,但我确信有更好的解决方案。有任何想法吗?