我使用import Button from 'Button.vue'
...
var Ctor = Vue.extend(Button);
var instance = new Ctor({ propsData: {} });
// SET SLOT
component.$slots.default = [ 'Hello' ];
instance.$mount('#el');
有2个数据帧df1
和df2
(值列表)。我想在2 datetimeindexes
匹配时执行条件计算字段。当它们匹配时,我想访问前一行datetimeindexes
。我想并执行以下计算。
df1
这里是df1['calc']=df1.where(df1.index==df2,
df1['High']/df1['Close'].shift(1),
df1.['Close']/df1['Close].shift(1))
。
df1
这是 Open High Low Close Volume
Date_Time
2012-08-30 9:40:00 1273.25 1273.25 1273.25 1273.25 1
2012-08-30 9:50:00 1273.25 1273.25 1273.25 1273.25 1
2012-08-30 10:00:00 1273.25 1273.25 1273.25 1273.25 2
2012-08-30 10:10:00 1274.25 1274.50 1274.25 1274.50 3
2012-08-30 10:20:00 1274.00 1274.00 1274.00 1274.00 5
中的时间列表:
df2
我尝试使用2012-08-29 2012-08-29 15:40:00
2012-08-30 2012-08-30 10:00:00
2012-08-31 2012-08-31 10:50:00
2012-09-04 2012-09-04 15:50:00
2012-09-05 2012-09-05 10:50:00
2012-09-10 2012-09-10 12:30:00
2012-09-12 2012-09-12 09:50:00
2012-09-14 2012-09-14 15:20:00
2012-09-19 2012-09-19 10:30:00
,.get_loc
和.loc
。我尝试了屏蔽,但只访问屏蔽日期帧的前一行。感谢。
答案 0 :(得分:0)
这是使用嵌套for循环的可怕的熊猫答案。这比写出如何比较数据帧之间的索引值要快得多。
driver.switchTo().frame(driver.findElement(By.tagName("iframe")));
输出:
<iframe class="x-component x-fit-item x-component-default" frameborder="0" src="/portal/page?libraryContext=7934fbba34c3d5bb965bcc33ff3a45acef04ff13d6e700ed7cc64a926f62db8e&siteId=LT1&menu=wm.config#wm.config.warehouse.warehouse////" name="1stPage:wm.config.warehouse.warehouse;Menu:wm.config;Ctx:7934fbba34c3d5bb965bcc33ff3a45acef04ff13d6e700ed7cc64a926f62db8e-1515619700794" data-lifecycle-participant="true" id="jdaIFrame-1026" style="margin: 0px; width: 1319px; height: 924px;"></iframe>
每次我使用带有pandas的for循环时,我想有一些更好的解决方案。
编辑:
for df1_row in df1.index.tolist():
for df2_row in df2.index.tolist():
if df1_row == df2_row:
row = df1.index.get_loc(df1_row)
print(df1.iloc[row]['High'] / df1.iloc[row - 1]['Close'])
print(df1.iloc[row]['Close'] / df1.iloc[row - 1]['Close'])
输出:
1.00078600904
1.00078600904