pandas 如何将列值作为滚动或移位的参数传递

tkclm6bt  于 2022-12-10  发布在  其他
关注(0)|答案(1)|浏览(97)

输入:

import pandas as pd
import numpy as np
df=pd.DataFrame(np.random.rand(10,1),columns = ['A'])
df['pos']=[0,0,1,2,0,0,1,2,3,4]

我尽量

df.A.rolling(df['pos']).max()
or
df.A.shift(df['pos'])

不行,怎么实现?

iqjalb3h

iqjalb3h1#

根据文档,rollingshift操作都是序列到序列的转换。如果要基于pos中的整数参数生成一系列序列,则需要重复以下操作:

pd.DataFrame({f'seq {i}': df.A.shift(i) for i in df.pos})

相关问题