小编Roa*_*ord的帖子

PyCharm(1.5.4)和Pandas 0.6.0 - ImportError:没有名为data的模块

我在MacOS 10.6.4上使用PyCharm(1.5.4)作为我的python IDE.我正在修改一些代码来操纵股票价格数据.作为其中的一部分,我想通过使用Pandas 0.6.0附带的DataReader函数从yahoo导入价格数据.代码如下:

http://www.statalgo.com/2011/09/08/pandas-getting-financial-data-from-yahoo-fred-etc/

from pandas import ols, DataFrame
from pandas.stats.moments import rolling_std
from pandas.io.data import DataReader
import datetime

sp500 = DataReader("^GSPC", "yahoo", start=datetime.datetime(1990, 1, 1))
sp500_returns = sp500["adj clos"].shift(-250)/sp500["adj clos"] - 1

gdp = DataReader("GDP", "fred", start=datetime.datetime(1990, 1, 1))["value"]
gdp_returns = (gdp/gdp.shift(1) - 1)
gdp_std = rolling_std(gdp_returns, 10)
gdp_standard = gdp_returns / gdp_std

gdp_on_sp = ols(y=sp500_returns, x=DataFrame({"gdp": gdp_standard}))

sp500.plot()
gdp.plot()
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我收到以下错误:

Traceback (most recent call last):
  File "/Users/MyName/PycharmProjects/test/mytest", line 3, in <module>
    from pandas.io.data import DataReader
ImportError: No …
Run Code Online (Sandbox Code Playgroud)

python module importerror pycharm

7
推荐指数
1
解决办法
3788
查看次数

控制箭头的数量

我在R中使用ggplot2来生成由连续线连接的数据帧中有序点的散点图.在这一行,我想放置几个箭头,显示数据框中点的顺序.我可以在每个相邻的点之间放置一个箭头,如下所示,但随着我添加更多的点,图形变得拥挤的箭头和凌乱.有没有办法让我可以在每个2,3,4相邻的点之间放置箭头?

library(ggplot2)  
library(grid)

b = c(1,2,3,6,7,5,4,3,2,3,4,6,8,9,9,8,9,11,12)
c = c(2,3,2,4,4,6,8,7,5,4,3,5,9,9,8,8,10,11,15)
df = data.frame(b, c)

ggplot(df, aes(x=b, y= c)) +
    geom_point() +
    geom_segment(aes(xend=c(tail(b, n=-1), NA), yend=c(tail(c, n=-1), NA)),
                 arrow=arrow(length=unit(0.4,"cm"), type = "closed"))
Run Code Online (Sandbox Code Playgroud)

示例图: 在此输入图像描述

r ggplot2 r-grid

7
推荐指数
1
解决办法
261
查看次数

pandas assert_frame_equal行为

我试图将两个DataFrame与pandas测试进行比较assert_frame_equal.这些框架包含要与某些用户定义的精度进行比较的浮动.

check_less_precise来自的论点assert_frame_equal似乎表明我可以指定小数点后面的位数来进行比较.引用API参考页面 -

check_less_precise:指定比较精度.仅在check_exact为False时使用.比较小数点后的5位数(假)或3位数(真).如果是int,则指定要比较的数字

API参考

但是,当浮点数小于1时,这似乎不起作用.

这引发了AssertionError

import pandas as pd

expected = pd.DataFrame([{"col": 0.1}])
output = pd.DataFrame([{"col": 0.12}])
pd.testing.assert_frame_equal(expected, output, check_less_precise=1)
Run Code Online (Sandbox Code Playgroud)

虽然这不是

expected = pd.DataFrame([{"col": 1.1}])
output = pd.DataFrame([{"col": 1.12}])
pd.testing.assert_frame_equal(expected, output, check_less_precise=1)
Run Code Online (Sandbox Code Playgroud)

有人可以帮助解释这种行为,这是一个错误吗?

python testing pandas

7
推荐指数
1
解决办法
1144
查看次数

Airflow - 获取 dag 运行的开始时间

是否可以在 Airflow 中获取 dag 的实际开始时间?开始时间是指 dag 的第一个任务开始运行的确切时间。

我知道我可以使用宏来获取执行日期。如果作业是使用 trigger_dag 运行的,这就是我所说的开始时间,但如果作业按每日计划运行,则{{ execution_date }}返回昨天的日期。

我还尝试将其放入datetime.now().isoformat()dag 代码的正文中,然后将其传递给任务,但这似乎返回了首次调用任务的时间,而不是 dag 本身的启动时间。

airflow apache-airflow

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

pandas to_json - 返回时间戳,单位为天而不是秒

我有一个包含日期时间对象的熊猫系列,这些对象是从日 - 月 - 年字符串创建的

series = pd.Series(['3/11/2000', '3/12/2000', '3/13/2000'])
series = pd.to_datetime(series)

print series
0   2000-03-11
1   2000-03-12
2   2000-03-13
dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)

之后,在使用这些日期时间对象后,我想以日 - 月 - 年的格式将此系列转换为json.但是,to_json返回日期时间与HH:MM:SS等

json = series.to_json(orient='index', date_format='iso', date_unit = 's')
print json
{"0":"2000-03-11T00:00:00Z","1":"2000-03-12T00:00:00Z","2":"2000-03-13T00:00:00Z"}
Run Code Online (Sandbox Code Playgroud)

是否有任何内置和优雅的方式来返回日期

{"0":"2000-03-11","1":"2000-03-12","2":"2000-03-13"}
Run Code Online (Sandbox Code Playgroud)

没有HH:MM:SS等我最接近(没有转换为字符串并编写一个函数来解析)是to_json的date_unit参数,尽管最大的时间单位看似是秒.

有人可以帮忙吗?谢谢

python datetime date pandas

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

气流:如何安排 dag 在工作日的第二天开始?

如何安排 dag 的执行日期为工作日,但第二天的开始日期不一定是工作日?

我的理由是,我会在每个工作日结束时获取数据,并希望在第二天早上进行处理。气流常见的陷阱将执行日期描述为数据所属的日期,而开始日期是您运行 ETL 的日期。


例如:我希望一系列 dag 运行具有以下执行和开始日期 -

DAG start_date      Task Started          Task execution_date
2018-01-01          2018-01-02 Tues       2018-01-01 Mon
                    2018-01-03 Wed        2018-01-02 Tues
                    2018-01-04 Thur       2018-01-03 Wed
                    2018-01-05 Fri        2018-01-04 Thur
                    2018-01-06 Sat        2018-01-05 Fri
                    2018-01-06 Tues       2018-01-08 Mon
Run Code Online (Sandbox Code Playgroud)

我设法做到的最接近的是使用时间表:0 2 * * TUE-SAT它在星期二开始时具有错误的执行日期(星期六)(见下文)

DAG start_date      Task Started          Task execution_date
2018-01-01          2018-01-03 Wed        2018-01-02 Tues
                    2018-01-04 Thur       2018-01-03 Wed
                    2018-01-05 Fri        2018-01-04 Thur
                    2018-01-06 Sat        2018-01-05 Fri
                    2018-01-09 Tues       2018-01-06 Sat
Run Code Online (Sandbox Code Playgroud)

或时间表:0 2 …

python airflow airflow-scheduler

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

动态调整大小闪亮的textAreaInput框?

我试图使一个textAreaInput框闪亮,跨越100%的网页,并在浏览器最小化/最大化时调整大小.我可以通过提供参数width = 100%来使用此行为创建一个简单的textInput.即使width在textInputtextAreaInput手册页中具有相同的描述,向textAreaInput提供相同的参数也不会产生相同的行为.这是理想的行为还是错误?

最小的工作示例 -

library(shiny)

shinyApp(
    #UI
    ui = fluidPage(
        fluidRow(
            column(12,
                textAreaInput("big_box", "Big box", value = "", width = '100%', rows = 5, resize = "both")
            )
        ), 
        fluidRow(
            column(12,
                textInput("long_box", "Long box", value = "", width = '100%')
            )
        )
    ),
    #Server
    server = function(input, output) {
    }
)
Run Code Online (Sandbox Code Playgroud)

输出示例 -

干杯

r shiny

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

如果列表中存在变量,则从自身删除变量的Pythonic方法

我有一个字符串列表['foo1','foo2',...],表示我想从self中删除的变量,如果它们是self的一部分.什么是Pythonic和紧凑的方式来做到这一点?

我的第一次尝试是

if hasattr(self, 'foo1'):
    del self.foo1
if hasattr(self, 'foo2'):
    del self.foo2
...
Run Code Online (Sandbox Code Playgroud)

但是这显然不适用于大型列表.

有人可以帮忙吗?

python attributes del

3
推荐指数
2
解决办法
2183
查看次数

在多列上过滤 pandas 数据框的最快方法

我有一个包含几列的 pandas 数据框,用于在最后一列中标记数据,例如,

df = pd.DataFrame( {'1_label' : ['a1','b1','c1','d1'],
                    '2_label' : ['a2','b2','c2','d2'],
                    '3_label' : ['a3','b3','c3','d3'],
                    'data'    : [1,2,3,4]})

df =      1_label 2_label 3_label  data
     0      a1      a2      a3     1
     1      b1      b2      b3     2
     2      c1      c2      c3     3
     3      d1      d2      d3     4
Run Code Online (Sandbox Code Playgroud)

和一个元组列表,

list_t = [('a1','a2','a3'), ('d1','d2','d3')]
Run Code Online (Sandbox Code Playgroud)

我想过滤此数据帧并返回一个新数据帧,其中仅包含与列表中的元组相对应的行。

result =        1_label 2_label 3_label  data
            0      a1      a2      a3     1
            1      d1      d2      d3     4
Run Code Online (Sandbox Code Playgroud)

我天真的(和 C++ 启发)解决方案是使用追加(如向量::push_back)

for l1, l2, l3 in list_t:
    if df[(df['1_label'] == l1) & …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

ack-grep 复活节彩蛋 - ack-grep --cathy 是什么意思?

ack-grep 有 3 个复活节彩蛋:

ack-grep --thppt
ack-grep --bar 
ack-grep --cathy
Run Code Online (Sandbox Code Playgroud)

虽然我是一个巨大的风扇ack-grep --bar和我得到的ack-grep --thppt,任何人都可以解释这个笑话的背后ack-grep --cathy

ack

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

测试 sqlalchemy select 对象中的 where 子句

我正在尝试编写一些函数来构建 sqlalchemy select 语句。例如:

import sqlalchemy as sa
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()
metadata = Base.metadata

t_test = sa.Table(
    'test', metadata,
    sa.Column('col_1', sa.Text),
    sa.Column('col_2', sa.Float)
)

def create_test_select():
    sa_select = sa.select([t_test.c.col_1, t_test.c.col_2])
    return sa_select

def add_test_col1_where_clause(sa_select, x ):
    sa_select = sa_select.where(t_test.c.col_1 == x)
    return sa_select
Run Code Online (Sandbox Code Playgroud)

我想测试一下这些功能。

为了测试create_test_select我会写一些类似的东西

class Test(unittest.TestCase):    
    def test(self):
         self.assertIn('col1', create_test_select().columns)
         self.assertIn('col2', create_test_select().columns)
Run Code Online (Sandbox Code Playgroud)

我如何测试该功能add_test_col1_where_clause?我想知道它向选择添加了正确的 where 子句。我最初的想法是检查 sqlachemy select 对象中的 where 子句,但我无法让它工作。

python testing unit-testing sqlalchemy

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