我有一些日内股票数据(例如,DateTime,Open,Close),我希望通过当天的汇总方式进行扩展。 喜欢: 日期时间,打开,关闭,t_Open(开放日期),t_Close(日期结束)。
当我使用resample()时,它会重新采样一整天:
var table = ctx.workbook.tables.getItem('TableName');
if (Office.context.requirements.isSetSupported('ExcelApi', 1.2) === true) {
table.clearFilters();
}
var tableRows = table.rows.load('items');
ctx.sync().then(function () {
for (var i = (tableRows.count - 1); i >= 0; i -= 1) {
var row = tableRows.getItemAt(tableRows.items[i].index);
row.delete();
}
});
但我正在寻找一些按行重新取样的东西。 因此,对于每一行,close都等于t_close,因为它是givin点的最后一个obs(并且t_High将是该行的最高UNTIL)。
像这样: DateTime Open Close T_OPEN T_CLOSE
165 2017-04-26 08:00:00 12485.6 12473.6 12485.6 12463.4
166 2017-04-26 08:15:00 12473.9 12473.9 12485.6 12463.4
167 2017-04-26 08:30:00 12473.6 12466.1 12485.6 12463.4
168 2017-04-26 08:45:00 12466.4 12469.6 12485.6 12463.4
169 2017-04-26 09:00:00 12470.1 12460.4 12485.6 12463.4
170 2017-04-26 09:15:00 12460.1 12460.1 12485.6 12463.4
171 2017-04-26 09:30:00 12459.9 12459.6 12485.6 12463.4
172 2017-04-26 09:45:00 12459.4 12463.4 12485.6 12463.4
173 2017-04-26 10:00:00 12462.9 12463.4 12485.6 12463.4
你有什么想法吗?
更新 评论结束后,我决定创建一个更通用的问题:) 我需要根据所有数据计算其他列,直到我正在处理的行。这意味着:
DateTime Open Close T_OPEN T_CLOSE
165 2017-04-26 08:00:00 12485.6 12473.6 12485.6 12473.6
166 2017-04-26 08:15:00 12473.9 12473.9 12485.6 12473.9
167 2017-04-26 08:30:00 12473.6 12466.1 12485.6 12466.1
168 2017-04-26 08:45:00 12466.4 12469.6 12485.6 12469.6
我可以通过在该数据帧上迭代两次来解决这个问题...但我正在寻找/希望有更多类似熊猫的选项:)
谢谢,并祝福, 即
答案 0 :(得分:0)
我想我知道你要做什么。这应该有效:
df = df.loc[df['Open'] <= df['Close']]
df['T_CLOSE'] = df['Close']
答案 1 :(得分:0)
我通过迭代和保留更高/更低值的值来解决问题
谢谢! Elenio