小编Tho*_*wne的帖子

在Pandas时间序列中每天查询相同的时间值

我想每天获得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)

python datetime dataframe pandas

5
推荐指数
1
解决办法
739
查看次数

为什么我们在 Elixir 中需要一个函数“捕获运算符”?

有人能解释一下为什么在 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)

基本上我不了解 …

elixir

5
推荐指数
1
解决办法
1239
查看次数

in ReactiveX, how do I pass other parameters to Observer.create?

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)

python rx-py reactivex

5
推荐指数
1
解决办法
491
查看次数

Pandas 中的“修改后”工作日

如何在 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 运行每个日期)。因此,给定一个日期向量,它将检查哪个日期落在周六/周日并自动应用规则,输出“修改后的”日期的向量。

python datetime pandas

5
推荐指数
1
解决办法
1677
查看次数

Python中的多元回归

我目前正在使用scipy的linregress函数进行单一回归.我无法找到相同的库或其他库是否能够进行多元回归,即一个因变量和一个以上的自变量.如果可能的话,我想避免使用R. 如果您想知道,我正在进行外汇市场分析,目标是用多个其他货币对复制一个货币对.有人帮吗?谢谢,

托马斯

python math regression scipy

4
推荐指数
1
解决办法
2万
查看次数

使用Python访问路透数据

我目前正在使用该服务的COM API和win32com成功下载彭博实时市场价格以及历史系列。有没有人对将路透社实时数据和历史数据输入Python进行同样的处理?

我知道实时提要可用于Excel中的两种服务,因此,路透社还必须具有我可以访问的API。唯一的问题是,彭博社的支持非常出色,并深入描述了其API,对于这种类型的查询,路透社已经有两个月无法与我联系了!而是继续尝试向我出售他们的电子邮件订阅服务,这不是我所需要的!

无论如何,对任何帮助都大加赞赏。

python finance reuters refinitiv-eikon-api

4
推荐指数
2
解决办法
2万
查看次数

如何在同一个R散点图中绘制多个系列?

我经常使用Excel中的散点图将一个时间序列可视化为另一个时间序列,但由于最近的数据更具有相关性,因此我在最近的时间段内使用不同的高光:

在此输入图像描述

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

在此输入图像描述

但我想复制我在excel中所拥有的东西.如何在R中的同一图表中添加新图?

或者我甚至可以更进一步使用R图中的col属性来使颜色持续增加到今天的值,从而避免这些谨慎的步骤?我该怎么办?

charts r

4
推荐指数
2
解决办法
7666
查看次数

如何在Erlang或Elixir中序列化有向图用于导出目的

我正在使用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格式或其他格式?

我可以编写自己的序列化程序,但我更喜欢预先存在的东西.我在digraphdigraph_utils中找不到任何这样的功能.

erlang elixir

4
推荐指数
1
解决办法
157
查看次数

R或Python中的季节性调整

有没有人知道在Python中进行季节性调整的常规,甚至更好?以下是一个示例数据集(南非CPI),该数据集在今年的前几个月往往会出现峰值:

SA m/m CPI

我想找到剥离季节性因素的潜在压力,但我理想的是喜欢使用一种相当简单的东西,用任何一种语言构建,而不是直接连接或使用像Demetra这样的外部包.

python r time-series

3
推荐指数
1
解决办法
4660
查看次数

我的Elixir递归函数返回列表列表,而不是简单列表

我正在学习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]?

elixir

3
推荐指数
1
解决办法
242
查看次数