可以数据帧.apply引用前几行?

2024-04-25 00:04:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道有人问过这个问题的类似版本,我看到的答案是否定的,或者看看你的应用,但到目前为止,我还没有看到如何实现这个代码的更快版本,尽管它似乎应该是可能的。你知道吗

在dataframe中,我想创建一个列,其值要么等于另一列,要么等于它的前一个值(前一行),具体取决于第二列。我可以做一个循环,但它是缓慢的。你知道吗

import pandas as pd

df = pd.DataFrame({'a':[0,1,2,0,1,2,0,1,2],'t':[0,1,2,3,4,5,6,7,8]})

startTime = df.loc[0,'t']
df.loc[:,'startTime'] = startTime

for idx in range(df.shape[0]):
    if df.loc[idx,'a'] == 0:
        startTime = df.loc[idx,'t']
    df.loc[idx,'startTime'] = startTime

df

Tags: 答案代码inimport版本dataframepandasdf