我想每天获得07h00值,来自每天有24小时分钟数据的多日数据框架.
import numpy as np
import pandas as pd
aframe = pd.DataFrame([np.arange(10000), np.arange(10000) * 2]).T
aframe.index = pd.date_range("2015-09-01", periods = 10000, freq = "1min")
aframe.head()
Out[174]:
0 1
2015-09-01 00:00:00 0 0
2015-09-01 00:01:00 1 2
2015-09-01 00:02:00 2 4
2015-09-01 00:03:00 3 6
2015-09-01 00:04:00 4 8
aframe.tail()
Out[175]:
0 1
2015-09-07 22:35:00 9995 19990
2015-09-07 22:36:00 9996 19992
2015-09-07 22:37:00 9997 19994
2015-09-07 22:38:00 9998 19996
2015-09-07 22:39:00 9999 19998
Run Code Online (Sandbox Code Playgroud)
在这10万行DataFrame中,我将如何在7天内尽可能高效地获取每天7am的价值?假设我可能必须为非常大的tick数据库执行此操作,因此我非常重视速度和低内存使用率.
我知道我可以用字符串索引,例如:
aframe.ix["2015-09-02 07:00:00"]
Out[176]:
0 1860
1 …Run Code Online (Sandbox Code Playgroud) 有人能解释一下为什么在 Elixir 中需要用与号前缀表示的“捕获运算符”吗?在其他语言中,它不是:
Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 12:22:00)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
>>> def double(x):
... return(x + x)
...
>>> double(2)
4
>>> dbl = double
>>> dbl(2)
4
Run Code Online (Sandbox Code Playgroud)
显然,这在 Elixir 中也是一样的:
iex(2)> double = fn x -> x + x end
#Function<6.118419387/1 in :erl_eval.expr/5>
iex(3)> double.(2)
4
iex(4)> dbl = double
#Function<6.118419387/1 in :erl_eval.expr/5>
iex(5)> dbl.(2)
4
Run Code Online (Sandbox Code Playgroud)
那么为什么,例如在这里,如果函数已经可以在没有所述运算符的情况下传递,我们还需要使用捕获运算符吗?函数的普通旧名称不是已经“捕获”了它吗?
iex(10)> Enum.map([1, 2, 3], double)
[2, 4, 6]
Run Code Online (Sandbox Code Playgroud)
基本上我不了解 …
Using RxPY for illustration purposes.
I want to create an observable from a function, but that function must take parameters. This particular example must return, at random intervals, one of many pre-defined tickers which I want to send to it. My solution thus far is to use a closure:
from __future__ import print_function
from rx import Observable
import random
import string
import time
def make_tickers(n = 300, s = 123):
""" generates up to n unique 3-letter strings geach makde …Run Code Online (Sandbox Code Playgroud) 如何在 Pandas 中有效实施“修改后的以下”工作日付款规则的矢量化版本?
背景
在金融领域,固定收益息票通常是在“修改后的后续”基础上支付的,也就是说,如果息票日期是周末或节假日,则在下一个工作日支付,除非所述下一个工作日是进入下一个日历月,在这种情况下,我们将回退到最近的前一个工作日。
April 2017
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Run Code Online (Sandbox Code Playgroud)
2017 年 4 月就是一个很好的例子。如果付款发生在 15 日星期六,则会提前到 17 日星期一。但是,如果它是两周后的 29 日星期六,则将推迟到 28 日星期五(因为下星期一将是 5 月)。
我需要一次对数千个日期执行此操作,因此如果可能的话,我希望它能够矢量化并且 pandas 高效(也就是说,我希望避免仅通过 if-then-else 运行每个日期)。因此,给定一个日期向量,它将检查哪个日期落在周六/周日并自动应用规则,输出“修改后的”日期的向量。
我目前正在使用scipy的linregress函数进行单一回归.我无法找到相同的库或其他库是否能够进行多元回归,即一个因变量和一个以上的自变量.如果可能的话,我想避免使用R. 如果您想知道,我正在进行外汇市场分析,目标是用多个其他货币对复制一个货币对.有人帮吗?谢谢,
托马斯
我目前正在使用该服务的COM API和win32com成功下载彭博实时市场价格以及历史系列。有没有人对将路透社实时数据和历史数据输入Python进行同样的处理?
我知道实时提要可用于Excel中的两种服务,因此,路透社还必须具有我可以访问的API。唯一的问题是,彭博社的支持非常出色,并深入描述了其API,对于这种类型的查询,路透社已经有两个月无法与我联系了!而是继续尝试向我出售他们的电子邮件订阅服务,这不是我所需要的!
无论如何,对任何帮助都大加赞赏。
我经常使用Excel中的散点图将一个时间序列可视化为另一个时间序列,但由于最近的数据更具有相关性,因此我在最近的时间段内使用不同的高光:

在这种情况下,月,周和今天的图是相同时间序列的不同(更近期)切片,因此在该图中基本上有四个叠加图.我怎么能在R中做同样的事情?我到目前为止:

但我想复制我在excel中所拥有的东西.如何在R中的同一图表中添加新图?
或者我甚至可以更进一步使用R图中的col属性来使颜色持续增加到今天的值,从而避免这些谨慎的步骤?我该怎么办?
我正在使用Erlang的有向图模块来存储有向无环图(DAG).因此,为了论证,这里是一个超级简单的图形(使用Elixir):
gr = :digraph.new()
:digraph.add_vertex(gr, "A")
:digraph.add_vertex(gr, "B")
:digraph.add_vertex(gr, "C")
:digraph.add_edge(gr, "A", "B")
:digraph.add_edge(gr, "A", "C")
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
我们可以看到它一切正常:
iex(7)> :digraph.vertices(gr)
["A", "C", "B"]
iex(8)> :digraph.edges(gr)
[[:"$e" | 0], [:"$e" | 1]]
iex(9)> :digraph.out_neighbours(gr, "A")
["C", "B"]
iex(10)> :digraph.out_neighbours(gr, "B")
[]
iex(11)> :digraph.out_neighbours(gr, "C")
[]
iex(12)> :digraph_utils.is_acyclic(gr)
true
Run Code Online (Sandbox Code Playgroud)
现在我将添加和删除更多顶点和边缘,但我想将这些图形传输到Elixir/Erlang生态系统之外的应用程序,例如Cytoscape.js.是否有标准化的方法将有向图串行化为某种行业标准可读格式(例如json或xml),例如JGF,Netlix的Falcor JSON Graph格式或其他格式?
我可以编写自己的序列化程序,但我更喜欢预先存在的东西.我在digraph或digraph_utils中找不到任何这样的功能.
有没有人知道在Python中进行季节性调整的常规,甚至更好?以下是一个示例数据集(南非CPI),该数据集在今年的前几个月往往会出现峰值:

我想找到剥离季节性因素的潜在压力,但我理想的是喜欢使用一种相当简单的东西,用任何一种语言构建,而不是直接连接或使用像Demetra这样的外部包.
我正在学习Elixir并根据链接的书(第64页),以下功能:
defmodule MyList do
def square([]), do: []
def square([ head | tail ]), do: [ head*head, square(tail) ]
end
Run Code Online (Sandbox Code Playgroud)
应该表现如下:
MyList.square [4, 5, 6]
[16, 25, 36]
Run Code Online (Sandbox Code Playgroud)
但当我在Ubuntu上插入我的Elixir 1.2.0安装时,我得到:
MyList.square [4, 5, 6]
[16, [25, [36, []]]]
Run Code Online (Sandbox Code Playgroud)
这里发生了什么事?我错了还是这本书错了?
我如何进入简单的[16,25,36]?