在写出这个问题的时候我最终搞清楚了,所以无论如何我都会发帖并回答我自己的问题以防其他人需要一些帮助.
假设我们有一个DataFrame,df包含该数据.
import pandas as pd
from io import StringIO
data = StringIO(
"""\
date spendings category
2014-03-25 10 A
2014-04-05 20 A
2014-04-15 10 A
2014-04-25 10 B
2014-05-05 10 B
2014-05-15 10 A
2014-05-25 10 A
"""
)
df = pd.read_csv(data,sep="\s+",parse_dates=True,index_col="date")
Run Code Online (Sandbox Code Playgroud)
对于每一行,总结一个月spendings内的每一行,理想情况下使用它是一个非常干净的语法.DataFrame.rolling
df = df.rolling("M").sum()
Run Code Online (Sandbox Code Playgroud)
但这引发了一个例外
ValueError: <MonthEnd> is a non-fixed frequency
Run Code Online (Sandbox Code Playgroud)
版: pandas==0.19.2
我的目标是从多个模块进行日志记录,而只在一个地方配置记录器 - 在主程序中.如这个答案所示,应该包括
logging.config.fileConfig('/path/to/logging.conf')
Run Code Online (Sandbox Code Playgroud)
在主程序中,然后在所有其他模块中包括
logger = logging.getLogger(__name__)
Run Code Online (Sandbox Code Playgroud)
我相信这就是我在下面所做的,但我得到了意想不到的行为.
# c.py
import logging
import logging.config
import d
logging.config.fileConfig("logging.conf")
logger = logging.getLogger(__name__)
logger.warning('logging from c')
d.foo()
Run Code Online (Sandbox Code Playgroud)
# d.py
import logging
logger = logging.getLogger(__name__)
# this will print when d is imported
logger.warning('logging from d on import')
def foo():
# this does not print
logger.warning("logging from d on call foo()")
Run Code Online (Sandbox Code Playgroud)
$ python c.py
logging from d on import
logging from c
Run Code Online (Sandbox Code Playgroud)
我所期望的是,当d.foo()执行时c.py,将记录消息d …
我想要什么:
确保Foo在with语句中创建的所有实例都foo通过wraps=Foo.foo. 我想要这个的原因是我可以跟踪创建的所有实例call_count的方法。现在我这么说似乎有点不可能......fooFoo
>>> from mock import patch
...
... class Foo(object):
...
... def foo(self):
... return "foo"
...
... with patch("__main__.Foo.foo", wraps=Foo.foo) as m:
... foo = Foo()
... print(foo.foo())
Traceback (most recent call last):
File "a.py", line 12, in <module>
print(foo.foo())
File "/disk/software/lib/python27/mock/mock.py", line 1062, in __call__
return _mock_self._mock_call(*args, **kwargs)
File "/disk/software/lib/python27/mock/mock.py", line 1132, in _mock_call
return self._mock_wraps(*args, **kwargs)
TypeError: unbound method foo() must be …Run Code Online (Sandbox Code Playgroud) 我试图了解由sphinx-quickstart. 这里是:
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SPHINXPROJ = myproj
SOURCEDIR = source
BUILDDIR = build
.PHONY: help Makefile
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
Run Code Online (Sandbox Code Playgroud)
令我困惑的几行是:
.PHONY: help Makefile
%: Makefile
Run Code Online (Sandbox Code Playgroud)
%目标的手段捕获任何东西(通配符)。例如,如果我输入make html,%就会捕获html。.PHONY Makefile意味着不make应该查找Makefile在其目录中调用的文件,因此,不应该检查文件的修改时间来确定是否运行规则。为什么Makefile被列为目标的先决条件%。我的解释方式是:
捕获的目标规则%应在Makefile更改时运行。
但这在上下文中没有任何意义。我期望的是:
%当项目文档的源文件或 API 源文件发生更改时,应运行捕获的目标规则。
.
??? build
??? Makefile
??? source
??? utils
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像的熊猫系列
Attribute DateEvent Value
Type A 2015-04-01 4
2015-04-02 5
2015-04-05 3
Type B 2015-04-01 1
2015-04-03 4
2015-04-05 1
Run Code Online (Sandbox Code Playgroud)
我的值转换为一个滚动的总和(比方说,过去2天),同时确保以说明我DateEvent指数缺少的日期(假设起始日期和它的结束日期是如何全方位的?(例如,2015-04-03和2015-04-04是缺少A型,并且2015-04-02与2015-04-04缺少类型B)。
python ×3
pandas ×2
datetime ×1
indexing ×1
logging ×1
makefile ×1
python-2.7 ×1
python-mock ×1