[英]Python – Pandas: Get max value of last 5 days
我有一個包含兩列的csv文件,日期和價格。 我想創建最近5天的“價格”最大值的第三列。 不是最后5行或索引,而是5天。
“ example.csv”的內容
Date Price 2018-07-23 124.44 2018-07-24 125.49 2018-07-25 123.26 2018-07-31 124.08 2018-08-01 125.10 2018-08-04 121.41 2018-08-05 119.17 2018-08-06 118.58
它看起來應該像這樣:
Date Price High5 2018-07-23 124.44 124.44 2018-07-24 125.49 125.49 2018-07-25 123.26 125.49 2018-07-31 124.08 124.08 2018-08-01 125.10 125.10 2018-08-04 121.41 125.10 2018-08-05 119.17 125.10 2018-08-06 118.58 121.41
通過此代碼,我可以獲得每一行的整個“ Close”列的最大值。
import pandas as pd
df = pd.read_csv('example.csv', parse_dates=True, index_col=0)
df['High5'] = df['Close'].max()
print(df)
使用此代碼,我得到所有行的最近5天(以2018-08-06結尾)的最大值。
import pandas as pd
df = pd.read_csv('example.csv', parse_dates=True, index_col=0)
rng = pd.date_range(end='2018-08-06', periods=5, freq='D')
df['High5'] = df['Price'].loc[rng].max()
print(df['High5'])
我不希望所有行都使用相同的值。 而且我知道使用固定(結束)日期是錯誤的。 但是我不了解我的初學者的答案。
您正在尋找滾動
df=df.set_index('Date')
df.index=pd.to_datetime(df.index)
df.rolling('5 D').max()
#df=df.rolling('5 D').max().reset_index()
Out[62]:
Price
Date
2018-07-23 124.44
2018-07-24 125.49
2018-07-25 125.49
2018-07-31 124.08
2018-08-01 125.10
2018-08-04 125.10
2018-08-05 125.10
2018-08-06 121.41
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.