我正在使用表示向量(大小和方向)的时间序列数据.我想重新采样我的数据并使用该describe函数作为how参数.
但是,该describe方法使用标准平均值,我想使用特殊函数来平均方向.因此,我describe基于以下的实现实现了我自己的方法pandas.Series.describe():
def directionAverage(x):
result = np.arctan2(np.mean(np.sin(x)), np.mean(np.cos(x)))
if result < 0:
result += 2*np.pi
return result
def directionDescribe(x):
data = [directionAverage(x), x.std(), x.min(), x.quantile(0.25), x.median(), x.quantile(0.75), x.max()]
names = ['mean', 'std', 'min', '25%', '50%', '75%', 'max']
return Series(data, index=names)
Run Code Online (Sandbox Code Playgroud)
问题是当我这样做时:
df['direction'].resample('10Min', how=directionDescribe)
Run Code Online (Sandbox Code Playgroud)
我得到了这个例外(最后几行显示):
File "C:\Python26\lib\site-packages\pandas\core\generic.py", line 234, in resample
return sampler.resample(self)
File "C:\Python26\lib\site-packages\pandas\tseries\resample.py", line 83, in resample
rs = self._resample_timestamps(obj)
File "C:\Python26\lib\site-packages\pandas\tseries\resample.py", line 217, in _resample_timestamps
result …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的数据对象:
data = {
'props': {
'items': [
{'name': 'a', 'content': 'plain'},
{'name': 'b', 'content': {'id': 'x'}},
{'name': 'c', 'content': {'id': 'y'}},
]
}
}
Run Code Online (Sandbox Code Playgroud)
使用glom,我想获得等于的项目x的值。idnameb
到目前为止,我有这个:
from glom import glom
from glom import SKIP
glom(data, ('props.items', [lambda i: i if i['name']=='b' else SKIP]))
Run Code Online (Sandbox Code Playgroud)
返回:
[{'name': 'b', 'content': {'id': 'x'}}]
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚使用什么规范(用glom说法)来提取返回列表中的唯一元素,然后提取id.
我可以调用 glom 两次:
glom(glom(data, ('props.items', [lambda i: i if i['name']=='b' else SKIP]))[0], 'content.id')
Run Code Online (Sandbox Code Playgroud)
但我认为应该有一种方法可以在一个电话中做到这一点。关于如何实现这一目标的任何想法?
我正在尝试在实例化后设置或更新 OptionMenu 的命令。
该widget.configure(command=foo)语句适用于Buttonand CheckButton,但不适用于OptionMenu。
以下代码引发此错误:_tkinter.TclError: unknown option "-command"
from Tkinter import Tk, OptionMenu, StringVar
root = Tk()
var = StringVar()
def foo(val):
print val, var.get()
widget = OptionMenu(root, var, "one", 'two')
widget.configure(command=foo)
widget.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud) 根据文档,tox 创建“通过调用当前项目的源代码分发python setup.py sdist”。
如何配置 tox 使其产生一个轮子,然后将其用于测试?:
python setup.py bdist_wheel --universal
Run Code Online (Sandbox Code Playgroud)