Python 如何基于dataframe中前一行的行值创建新列?
我想添加一个列,如果T行的股票调整后收盘价相对于T-1行的调整后收盘价上涨,则将其编码为1,如果下跌,则将其编码为0 数据帧看起来像: 例如,新列的行索引1298应为0Python 如何基于dataframe中前一行的行值创建新列?,python,pandas,Python,Pandas,我想添加一个列,如果T行的股票调整后收盘价相对于T-1行的调整后收盘价上涨,则将其编码为1,如果下跌,则将其编码为0 数据帧看起来像: 例如,新列的行索引1298应为0 最好的方法是什么(例如,通过np.where()?)来完成这项工作?任何输入都值得赞赏。您可以首先对日期列上的值进行排序,以确保它们的顺序正确,从而执行比较,然后您可以使用np.where和shift()要将Adj Close中的上一个值与当前值进行比较: # Sort by date df.sort_values(by='D
最好的方法是什么(例如,通过np.where()?)来完成这项工作?任何输入都值得赞赏。您可以首先对日期列上的值进行排序,以确保它们的顺序正确,从而执行比较,然后您可以使用
np.where
和shift()
要将Adj Close中的上一个值与当前值进行比较:
# Sort by date
df.sort_values(by='Date',ascending=True)
# Create a column comparing previous Adj Close with current Adj Close
import numpy as np
df['i'] = np.where(df['Adj Close'].shift(1) < df['Adj Close'],1,0)
df
Date Open High ... Adj Close Volume i
index ...
1297 2021-03-01 104.540001 133.990005 ... 120.40 49597300 0
1298 2021-03-02 116.930000 133.199900 ... 118.18 33640400 0
1299 2021-03-03 122.500000 127.700000 ... 124.18 19173700 1