簡體   English   中英

如何根據 Pandas dataframe 中上一行的行值創建新列?

[英]How to create a new column based on row value in previous row in Pandas dataframe?

我想添加一個列,如果 T 行的股票的調整收盤價與 T-1 行的調整收盤價相比上漲,則編碼為 1,如果它下跌,則編碼為 0。

dataframe 看起來像:

在此處輸入圖像描述

例如,新列的行索引 1298 處應為 0

完成這項工作的最佳方法是什么(例如,通過 np.where()?)任何輸入都值得贊賞。

您可以首先對日期列進行sort_values以確保它們以正確的順序執行比較,然后您可以使用np.whereshift()將 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM