小编rub*_*bop的帖子

Pandas:修改Multiindex的特定级别,多次使用replace方法

我尝试多次使用替换方法,以便更改多索引熊猫数据帧的给定级别的索引。

如下所示:Pandas:修改 Multiindex 的特定级别,@John 得到了一个解决方案,只要使用一次替换方法,该解决方案就可以很好地工作。

问题是,如果我多次使用这个方法,它就不起作用了。例如

df.index = df.index.set_levels(df.index.levels[0].str.replace("dataframe_",'').replace("_r",' r'), level=0)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

AttributeError: 'Index' object has no attribute 'replace'
Run Code Online (Sandbox Code Playgroud)

我缺少什么?

python multi-index dataframe pandas

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

PyQt5可检查组合框:显示已检查项目的列表

基于/sf/answers/1594319331/可检查组合框实现,我想更进一步,能够直接在主 QComboBox 标签上显示已检查项目的列表,即当显示文本时QComboBox 的未“展开”。

到目前为止,我可以打印已检查项目的列表,但我不知道如何使用前者更改主 QComboBox 标签文本:

from PyQt5.QtWidgets import QApplication, QComboBox, QMainWindow, QWidget, QVBoxLayout
from PyQt5.QtGui import QStandardItemModel
from PyQt5.QtCore import Qt
import sys


class CheckableComboBox(QComboBox):
    def __init__(self):
        super(CheckableComboBox, self).__init__()
        self.view().pressed.connect(self.handle_item_pressed)
        self.setModel(QStandardItemModel(self))

    def handle_item_pressed(self, index):
        item = self.model().itemFromIndex(index)
        if item.checkState() == Qt.Checked:
            item.setCheckState(Qt.Unchecked)
            # print(item.text() + " was unselected.")
        else:
            item.setCheckState(Qt.Checked)
            # print(item.text() + " was selected.")
        self.check_items()

    def item_checked(self, index):
        item = self.model().item(index, 0)
        return item.checkState() == Qt.Checked

    def check_items(self):
        checkedItems = []
        for …
Run Code Online (Sandbox Code Playgroud)

python pyqt qcombobox pyqt5

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

PyQt5:使用 QThread 弹出进度条

如何在弹出窗口中实现一个进度条,该窗口通过QThread监视来自所谓的 Worker 类(即时间/CPU 消耗任务)的运行函数的进度?

我已经检查了无数示例和教程,但进度条显示在弹出窗口中的事实似乎使一切变得更加困难。我相信我想要的是一件相当简单的事情,但我一直在失败,而且我的想法也用完了。

我有一个我想要实现的例子,它基于这个答案

import sys
import time
from PyQt5.QtCore import QThread, pyqtSignal, QObject, pyqtSlot
from PyQt5.QtWidgets import QApplication, QPushButton, QWidget, QHBoxLayout, QProgressBar, QVBoxLayout


class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Widget")
        self.h_box = QHBoxLayout(self)
        self.main_window_button = QPushButton("Start")
        self.main_window_button.clicked.connect(PopUpProgressB)
        self.h_box.addWidget(self.main_window_button)
        self.setLayout(self.h_box)
        self.show()


class Worker(QObject):
    finished = pyqtSignal()
    intReady = pyqtSignal(int)

    @pyqtSlot()
    def proc_counter(self):  # A slot takes no params
        for i in range(1, 100):
            time.sleep(1)
            self.intReady.emit(i)

        self.finished.emit()


class PopUpProgressB(QWidget):

    def …
Run Code Online (Sandbox Code Playgroud)

python pyqt qprogressbar qthread pyqt5

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

导入 tkinter:模块列表

导入tkinter不会导入一些基本且有用的模块,例如messagebox,如下所述:tkinter.messagebox.showinfo 并不总是有效

我如何检查哪些模块是实际导入的,哪些模块import tkinter可以通过显式导入(例如from tkinter import messagebox)来导入?

python import tkinter tkmessagebox python-3.x

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