我构建了一个结果的熊猫数据框.此数据框充当表.有MultiIndexed列,每行代表一个名称,即index=['name1','name2',...]
创建DataFrame时.我想显示这个表并将其保存为png(或任何图形格式).目前,我能得到的最接近的是将其转换为html,但我想要一个png.看起来有类似的问题,如如何将Pandas数据帧/系列数据保存为数字?
但是,标记的解决方案将数据帧转换为线图(而不是表格),而另一个解决方案依赖于PySide,我只想因为无法将其安装在Linux上而远离它.我希望这段代码易于移植.我真的希望使用python可以轻松创建表格.所有帮助表示赞赏.
使用 subprocess 和命令 ' gnome-terminal -e bash
' 我可以根据需要打开一个 gnome 终端(并让它保留在周围)。这是通过以下任一方式完成的
p=subprocess.Popen(['gnome-terminal', '-e', 'bash'])
Run Code Online (Sandbox Code Playgroud)
或者
p=subprocess.Popen(['gnome-terminal -e bash'], shell=True)
Run Code Online (Sandbox Code Playgroud)
p.terminate()
但我无法使用或关闭终端p.kill()
。据我了解,这在使用时有点棘手shell=True
,但我没想到会遇到问题。
我有一个 DataFrame,其中的列是 MultiIndex,索引是名称列表,即index=['Andrew', 'Bob', 'Calvin',...]
.
我想创建一个函数来返回使用名称“Bob”或以字母“A”开头或以小写字母开头的数据帧的所有行。如何才能做到这一点?
我查看df.filter()
了 regex 参数,但它失败了,我得到:
df.filter(regex='a')
TypeError: expected string or buffer
Run Code Online (Sandbox Code Playgroud)
或者:
df.filter(regex=('a',1)
TypeError: first argument must be string or compiled pattern
Run Code Online (Sandbox Code Playgroud)
我尝试过其他事情,例如通过re.compile('a')
无济于事。
我想知道人们如何将 docker 用于生产和开发。在开发中,我想挂载我的源/构建文件,以便能够快速轻松地进行更改。对于生产,我想在图像中包含源/构建文件。
这通常是如何完成的,是否有最佳或更常见的做法?
在我看来,理想情况下,我会有一个 Dockerfile 使用标志或环境变量之类的东西来设置 prod 或 dev 映像,但我找不到任何这样做的人的例子,我不确定它到底是如何完成的.
我还看到了一些具有用于生产和开发的独特 Dockerfiles 的项目的粗略示例,但是存在维护单独 Dockerfiles 的问题,如果我们不小心,随着时间的推移可能会出现分歧。
这些都是明智的还是我可能误解了什么?我对 docker 比较陌生。使用类似设置的示例 Dockerfile 或项目会很棒。我担心在一开始就用不好的做法对我们的一些服务进行 dockerizing。
编辑:如果影响任何响应,我当前所有的应用程序都是基于 python 的。
我有一个字符串
s = '--two \x08--three'
Run Code Online (Sandbox Code Playgroud)
当我打印时,我得到
--two--three
Run Code Online (Sandbox Code Playgroud)
但我可以做点什么吗
s='--two--three'
Run Code Online (Sandbox Code Playgroud)
没有明确声明它。
我不需要存储甚至不知道后面的空间。我只想在没有退格字符的情况下操作文本。我怎样才能做到这一点?
编辑:希望我能澄清一点。说我有两个字符串
test1 = 'a\bb' #b
test2 = 'b' #b
Run Code Online (Sandbox Code Playgroud)
当它们被打印出来时,它们等同于用户,但是test1!=test2
. 我正在做的是从终端拉出一些输出。此输出始终具有退格键。我希望能够操作最终结果、搜索单词、编辑字符串而不必担心退格。
编辑 2:我想我真正想要的是将变量设置为打印语句的结果
a = print("5\bA") #a='A' #does not work like this
Run Code Online (Sandbox Code Playgroud) 我想要一个树控件,可以右键单击以创建弹出菜单。单击项目菜单时,会发送一个事件,其中包含树中的 ItemData。我不知道该怎么做。到目前为止我所拥有的只是一个简单的弹出菜单生成
# Panel
def __init__(self, ...):
# ...
self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.OnRightClick)
def OnRightClick(self, event):
popupmenu = wx.Menu()
entries = ['One', 'Two']
for entry in entries:
menuItem = popupmenu.Append(-1, entry)
Run Code Online (Sandbox Code Playgroud)
如何从 TreeEvent 获取 TreeCtrl ItemData?获得此数据后,是否需要将其附加到自定义事件?
编辑:获取项目数据需要采取迂回的方式。
item = event.GetItem()
itemData = self.tree.GetItemData(item).GetData()
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 .xml 解析一个 xml 文件lxml
。
my_tree = etree.parse(file)
my_root = my_tree.getroot()
for child in my_root:
print(child.tag)
# {some default namespace}Prop
# {some default namespace}Prop
# {some default namespace}Stuff
# ...
Run Code Online (Sandbox Code Playgroud)
理想情况下,我只想用类似的东西获得我想要的所有元素
my_root.findall('Prop', my_root.nsmap)
Run Code Online (Sandbox Code Playgroud)
但这是返回一个空列表。我注意到my_root.nsmap
字典有一个带有默认命名空间的 None 项目。
nsmap = {None: 'default namespace', ...}
Run Code Online (Sandbox Code Playgroud)
我通过复制 nsmap 并添加一个与 None 项目具有相同值的“默认”项目找到了一个快速解决方法,然后我做了
my_root.findall('default:Prop', new_map)
Run Code Online (Sandbox Code Playgroud)
这感觉非常hackish。为什么即使在命名空间映射中也没有?lxml 中是否有一些简单的方法可以自动使用默认命名空间?
编辑:我正在查看的 xml 是沿着
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ScenarioProps xmlns="http://filler.com/default.xsd" xmlns:ns2="http://filler.com/ns.xsd" id="Test">
<Prop id="Wi-Fi">
<ns2:Position x="0.0" y="0.0" z="0.0"/>
<ns2:Orientation roll="0.0" pitch="0.0" yaw="0.0"/>
</Prop>
</ScenarioProps>
Run Code Online (Sandbox Code Playgroud) 我有一个装饰器@auth
,它基本上检查数据库以确保用户可以访问给定的 REST 调用。我想为这些调用编写一些单元测试。我最初的想法是简单地将装饰器修补成一个什么都不做的通道。(我最初的想法失败了,所以我可能只是在里面修补一些函数,@auth
以便它总是通过,但我仍然很好奇是否可以完全绕过装饰器)
我拼凑了一个我希望完成的快速样本。
例子.py
# example.py
from __future__ import print_function
def sample_decorator(func):
def decorated(*args, **kwargs):
print("Start Calculation")
ans = func(*args, **kwargs) + 3
print(ans)
print("Finished")
return ans
return decorated
@sample_decorator
def add(a, b):
return a + b
Run Code Online (Sandbox Code Playgroud)
测试示例.py
# test_example.py
from __future__ import print_function
import pytest
import example
def test_add_with_decorator():
assert example.add(1, 1) == 5
def testadd_with_monkeypatch_out_decorator(monkeypatch):
monkeypatch.setattr(example, 'sample_decorator', lambda func: func)
assert example.add(1, 1) == 2 # this fails, but is the behaviour I …
Run Code Online (Sandbox Code Playgroud)