我正在尝试使用一个程序从数据库中检索记录sqlite3,然后使用a显示它们Treeview.
我成功地创建了一个包含记录的表,但我无法删除第一个空列.
def executethiscommand(search_str):
comm.execute(search_str)
records = comm.fetchall()
rows = records.__len__()
columns = records[0].__len__()
win = Toplevel()
list_columns = [columnames[0] for columnames in comm.description]
tree = ttk.Treeview(win)
tree['columns'] = list_columns
for column in list_columns:
tree.column(column, width=70)
tree.heading(column, text=column.capitalize())
for record in records:
tree.insert("", 0, text="", values=record)
tree.pack(side=TOP, fill=X)
Run Code Online (Sandbox Code Playgroud)
我想使用 ,将四个价格的列表附加[1, 2, 3, 4]到现有的数据框DataFrame.append(),现有的数据框有四列。
使用这个
dataframe = pd.DataFrame(columns=["open", "high", "low", "close"],
data = [[1, 2, 3, 4]])
Run Code Online (Sandbox Code Playgroud)
创建数据框
open high low close
0 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
然后我想附加一些这样的列表:
open high low close
0 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
给出输出
open high low close 0 1 2 3
0 1.0 2.0 3.0 4.0 NaN NaN NaN NaN
1 NaN NaN NaN NaN 5.0 6.0 7.0 8.0
Run Code Online (Sandbox Code Playgroud)
虽然我希望将列表连续附加到数据框,但有没有办法在不使用列名称而仅使用四个价格列表的情况下执行此操作?
我们正在开发一个 python 程序/库,我们想为其设置一个日志系统。基本上我们想在终端上登录或在文件上登录。为此,我们将使用标准发行版中嵌入的优秀日志记录包。
用户应通过其首选项来自定义日志记录级别。我的问题是如何检索连接到记录器的处理程序之一?我在想一些类似这样的事情:
import logging
class NullHandler(logging.Handler):
def emit(self,record):
pass
HANDLERS = {}
HANDLERS['console'] = logging.StreamHandler()
HANDLERS['logfile'] = logging.FileHandler('test.log','w')
logging.getLogger().addHandler(NullHandler())
logging.getLogger('console').addHandler(HANDLERS['console'])
logging.getLogger('logfile').addHandler(HANDLERS['logfile'])
def set_log_level(handler, level):
if hanlder not in HANDLERS:
return
HANDLERS[handler].setLevel(level)
def log(message, level, logger=None):
if logger is None:
logger= HANDLERS.keys()
for l in logger:
logging.getLogger(l).log(level, message)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我的实现意味着使用 HANDLERS 全局字典来存储我创建的处理程序的实例。我找不到更好的方法来做到这一点。在该设计中,可以说,由于我只为每个记录器插入一个处理程序,因此我的记录器对象的处理程序属性应该没问题,但我正在寻找更通用的东西(即,如果有一天插入多个处理程序,该怎么办到我的一位记录器?)
你怎么看待这件事 ?
非常感谢
埃里克
我试着理解logging模块是如何工作的.以下代码没有像我预期的那样反应.
#!/usr/bin/env python3
import logging
l = logging.getLogger()
l.setLevel(logging.DEBUG)
print('enabled for DEBUG: {}'.format(l.isEnabledFor(logging.DEBUG)))
l.debug('debug')
l.info('info')
l.warning('warning')
l.error('error')
l.critical('critical')
Run Code Online (Sandbox Code Playgroud)
它只是打印到控制台.
warning
error
critical
Run Code Online (Sandbox Code Playgroud)
但为什么?不应该有info和debug,太?为什么不?
问题不在于如何解决这个问题.我知道处理程序和类似的东西.我只是试着理解这段代码是如何工作的以及为什么它没有像我期望的那样反应.
我观察到a的x轴plot没有穿过y轴0.
为什么?
我该如何解决这个问题?
例:
plot(mtcars$mpg, ylim=c(0,50))
Run Code Online (Sandbox Code Playgroud)
我Gtk.TreeView这里有。大多数但不是所有的项目都应该能够拖放。在这个例子中,第一个项目应该不能被拖放,但它应该是可选择的。
我怎么能意识到这一点?也许我必须使用drag-begin信号并停止那里的阻力。但我不知道怎么做。
#!/usr/bin/env python3
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import Gdk
class MainWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="TreeView Drag and Drop")
self.connect("delete-event", Gtk.main_quit)
self.set_default_size(400, 300)
# "model" with dummy data
self.store = Gtk.TreeStore(str)
self.store.append(None, ['do not drag this'])
self.store.append(None, ['drag this'])
self.view = Gtk.TreeView(model=self.store)
self.add(self.view)
# build columsn
colA = Gtk.TreeViewColumn('Col A', Gtk.CellRendererText(), text=0)
self.view.append_column(colA)
# DnD events
self.view.connect("drag-data-received", self.drag_data_received)
self.view.connect("drag-data-get", self.drag_data_get)
self.view.connect("drag-begin", self.drag_begin)
target_entry = Gtk.TargetEntry.new('text/plain', 2, 0)
self.view.enable_model_drag_source( …Run Code Online (Sandbox Code Playgroud) 所以,我在 pandas 中经历了 agg() 和aggregate()。并发现两者都给出相似的输出。下面的代码为这两个函数提供了类似的输出。所以,只是想了解它们两者之间的区别。
data = {'Name': ['Giggs', 'Tom', 'Dick', 'Harry', 'Jack', 'Jill', 'Scholes', 'Martial', 'Rashford', 'Pogba'],
'Age': [23,21,24,21,20,10,23,45,22,35],
'Rating': [4.23, 3.21, 2.10, 1.91, 4.32, 6.32, 4.19, 2.09, 1.09, 3.33],
'Teams': ['Man Utd',"PSG",'Real Madrid','Real Madrid', 'Man Utd', 'Man City','Man City','PSG','Man Utd','PSG'],
'Year': [2014, 2015, 2014, 2015, 2014, 2015, 2016, 2017, 2016, 2014]}
df = pd.DataFrame(data)
print(grouped.agg('Rating').sum())
print("------Aggregation function---")
print(grouped.aggregate('Rating').sum())
Run Code Online (Sandbox Code Playgroud) 我找不到plot()R中选项的默认字体是什么。我记得那里是赫尔维蒂卡(Helvetica),但我找不到任何消息来源来证实这一想法。有谁知道plot()选项中的默认字体是什么,以及如何更改字体?
我知道有family选择,但是字体选择非常有限。我也知道有一个family选项pdf(),默认情况下为Helvetica,但这会捕获图形图像,因此我的绘图字体由plot()选项中的字体决定。
任何人有任何想法吗?我特别希望将所有文本(绘图标签,轴标签,主标题等)转换为Helvetica字体。提前致谢 :)
我尝试安装 PyRTF从 PyPi,但这不起作用。
可以找到包本身:
$ pip3 search PyRTF
PyRTF (0.45) - PyRTF - Rich Text Format Document Generation
Run Code Online (Sandbox Code Playgroud)
但是安装失败:
$ sudo -H pip3 install PyRTF
Collecting PyRTF
Could not find a version that satisfies the requirement PyRTF (from versions: )
No matching distribution found for PyRTF
Run Code Online (Sandbox Code Playgroud)
我很迷惑。