我正在编写一些代码,从数据帧生成特性,并将这些特性作为列添加到数据帧中。你知道吗
问题是,我使用的是一个时间序列,因此对于任何给定的元组,我需要(比方说)前面的5个元组来为该元组生成相应的特征。你知道吗
lookback_period = 5
df['feature1'] = np.zeros(len(df)) # preallocate
for index, row in df.iterrows():
if index < lookback_period:
continue
slice = df[index - lookback_period:index]
some_int = SomeFxn(slice)
row['feature1'] = some_int
有没有一种方法可以执行这段代码,而不必显式地遍历每一行,然后切片?你知道吗
一种方法是使用df['column_name'].shift()
创建几个滞后列,这样所有必要的信息都包含在每一行中,但是由于数据集很大(数百万行),这很快就会对我的计算机内存造成困难。你知道吗
我没有足够的声誉发表评论,所以只会张贴在这里。你知道吗
你不能为你的数据帧使用apply吗
df['feature1']=数据框应用(someRowFunction,轴=1)
someRowFunction将接受整行,您可以执行任何基于行的切片和逻辑。你知道吗
-更新-
因为我们没有太多关于数据帧和所需/预期输出的信息,所以我只是根据评论中的信息来回答
让我们定义一个函数,它将获取一个数据帧切片(基于当前行索引和回溯)和该行,并返回切片的第一列和当前行的值之和。你知道吗
我们可以使用apply的name属性从apply获取行索引,因此我们可以检索所需的切片。以上将导致以下结果
相关问题 更多 >
编程相关推荐