这是我的第一个问题,即堆栈溢出。我已经通过论坛进行了搜索,发现了一个问题,这是我无法找到解决方案的确切问题。但是没有答案。我在这里复制了它。任何帮助将不胜感激。
What is pandas syntax for lookup based on existing columns + row values?
以下是已完成内容的摘要
创建一个包含两列的pandas df1:'日期'和' Price' - 完成
我添加了两个新列:' rollmax'和' rollmin',其中' rollmax'是一个8天的最大滚动和' rollmin'是最低限度的。 - 完成
对于第n行,请转到“价格”列。并解析过去8天的值并找到最大值,然后得到相应的日期并将此值放在' rollingmax_date'列中。
' rollingmin_date'采用相同的逻辑,但我们不是滚动最大日期,而是查找滚动最小日期。
我做了前两个并尝试了第三个,但我得到了错误的结果。
下面的代码只给出了同一行的日期df [" Price"]与df [' rollmax']相同,但它并没有带来所有相应的日期来自'日期'到' rollmax_date'
df['rollmax_date'] = df.loc[(df["High"] == df.rollmax), 'Date']
Q中的图像如下:
编辑:
以下是所要求的其他输入。
由于某种原因,我无法在此处粘贴数据框的副本。它是股票的典型数据框架。我列有' Date',' Open',' High'' Close'。 Rollmax和Rollmin的计算方法如上。现在,我需要在Rollmax_date'列中填写Rollmax和Rollmin的日期。和' Rollmin_date'
这里添加了DataFrame。格式不佳。无法将其粘贴为表格
如图所示,第一个rollmax是11872,发生在2011年1月4日。我正在尝试将此值放入列中#Roll;滚动日期'
df = quandl.get(stock,start_date = start, end_date = end)
df['Date']=df.index
df['rollmax'] = df['High'].rolling(period_up).max().shift(-period_up)
df['rollmin'] = df['Low'].rolling(period_down).min().shift(-period_down)
其中period_up& period_down = -8(' - '是将来的数据查找到特定行的当前日期)
Open High Low Close Shares Traded \
Date
2011-01-03 11882.10 11912.15 11826.95 11855.75 8895927.0
2011-01-04 11868.40 11872.80 11545.55 11564.05 16041214.0
2011-01-05 11545.75 11545.75 11265.55 11305.45 19689201.0
2011-01-06 11350.70 11377.10 11164.75 11186.80 19559984.0
2011-01-07 11146.45 11258.50 11007.90 11053.35 25192954.0
2011-01-10 11024.50 11072.70 10671.60 10700.65 21584988.0
2011-01-11 10734.20 10951.20 10620.80 10833.55 22297958.0
2011-01-12 10906.40 11161.15 10728.45 11128.15 24855243.0
2011-01-13 11125.95 11127.95 10676.50 10716.65 18520804.0
2011-01-14 10746.80 10907.30 10387.90 10432.90 19299172.0
Turnover (Rs. Cr) Date rollmax rollmin
Date
2011-01-03 909.29 2011-01-03 11872.80 10373.8
2011-01-04 1949.98 2011-01-04 11545.75 10373.8
2011-01-05 1988.86 2011-01-05 11377.10 10373.8
2011-01-06 2114.13 2011-01-06 11258.50 10373.8
2011-01-07 2746.05 2011-01-07 11161.15 10373.8
2011-01-10 2389.16 2011-01-10 11177.85 10373.8
2011-01-11 2407.41 2011-01-11 11256.95 10373.8
2011-01-12 2703.24 2011-01-12 11256.95 10373.8
2011-01-13 1939.18 2011-01-13 11256.95 10373.8
2011-01-14 2054.64 2011-01-14 11256.95 10373.8