小编Joe*_*oka的帖子

分区聚合 - pandas Dataframe

我正在寻找基于特定分区聚合值的最佳方法,相当于

SUM(TotalCost) OVER(PARTITION BY ShopName) Earnings  ( SQL server)
Run Code Online (Sandbox Code Playgroud)

我可以通过Pandas中的以下步骤来做到这一点,但是寻找一种我确信应该存在的原生方法

TempDF= DF.groupby(by=['ShopName'])['TotalCost'].sum()

TempDF= TempDF.reset_index() 

NewDF=pd.merge(DF , TempDF, how='inner', on='ShopName')
Run Code Online (Sandbox Code Playgroud)

非常感谢您阅读!

python group-by dataframe pandas partition

15
推荐指数
1
解决办法
1万
查看次数

如何使用PyQt5显示Pandas数据帧

我有一个问题,下面的行self.tableView.set??????????(df)应该在PyQt5中显示数据帧.我放 ???那里我错过了我需要的代码.

def btn_clk(self):
        path = self.lineEdit.text()
        df = pd.read_csv(path)
        self.tableView.set??????????(df)
Run Code Online (Sandbox Code Playgroud)

其余的代码可以工作,因为如果我print(df)在上面的代码中使用,数据框就会在IPython控制台中打印出来.所以,Pandas读取CSV并打印出来.

但是,我尝试了很多东西让它在PyQt5中显示出来并且没有任何效果.我对PyQt不太熟悉,刚刚开始玩它而且我被困在这里.

这是我的代码:

from PyQt5 import QtCore, QtGui, QtWidgets
import pandas as pd
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(662, 512)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setObjectName("lineEdit")
        self.verticalLayout.addWidget(self.lineEdit)
        self.tableView = QtWidgets.QTableView(self.centralwidget)
        self.tableView.setObjectName("tableView")
        self.verticalLayout.addWidget(self.tableView)
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setObjectName("pushButton")
        self.verticalLayout.addWidget(self.pushButton)
        self.horizontalLayout.addLayout(self.verticalLayout)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 662, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow) …
Run Code Online (Sandbox Code Playgroud)

python pyqt qtableview pandas pyqt5

12
推荐指数
1
解决办法
1万
查看次数

从字符串中删除反斜杠

我之前回答了一个问题,OP询问他如何从字符串中删除反斜杠.这是OP的字符串中反斜杠的样子:

"I don\'t know why I don\'t have the right answer"
Run Code Online (Sandbox Code Playgroud)

这是我的答案:

a = "I don\'t know why I don\'t have the right answer"
b = a.strip("/")
print b
Run Code Online (Sandbox Code Playgroud)

这从字符串中删除了反斜杠,但我的答案被低估了,我收到一条评论说" 我的答案有很多问题,很难计算 "我完全相信我的答案可能是错的,但我想要知道为什么我可以从中学习.但是,作者删除了这个问题,所以我无法回答那里的评论来提出这个问题.

python

10
推荐指数
3
解决办法
2万
查看次数

使用 PIL 在 OpenCV Python 中更改字体系列

上面的答案并没有解决我的问题。

我正在使用cv2.putText()将文本放在视频上。

这按预期工作,但我正在尝试使用不同的字体(在 OpenCV 中不可用)。

我知道 OpenCV 仅限于cv2.FONT_HERSHEY字体,所以我使用 PIL 和 OpenCV 来实现这一点。

我将这种方法用于图像,并且该实验成功了。但是当我在视频上尝试类似的东西时我失败了。

import cv2
from PIL import ImageFont, ImageDraw, Image

camera = cv2.VideoCapture('some_video.wmv')
while cv2.waitKey(30) < 0:
    rv, frame = camera.read()
    if rv:
        font = ImageFont.truetype("calibrii.ttf", 80)
        cv2.putText(frame, 'Hello World!', (600, 600), font, 2.8, 255)
        cv2.imshow('Video', frame)
Run Code Online (Sandbox Code Playgroud)

我在同一目录中有“calibrii.ttf”,正如我所提到的,这种方法适用于图像。

这是错误:

cv2.putText(frame, 'Hello World!', (600, 600), font, 2.8, 255)
TypeError: an integer is required (got type FreeTypeFont)
Run Code Online (Sandbox Code Playgroud)

python opencv pillow opencv-python

5
推荐指数
1
解决办法
4571
查看次数

在 PyQt5 中将绘图嵌入到graphicsView中

我用来pyqtgraph在 PyQt5 GUI 中绘图。我可以在弹出窗口中绘图,但我正在尝试将图形嵌入到该graphicsView区域中。

以下是我在新窗口中绘制简单绘图的方法:

    self.pushButton.clicked.connect(self.btn_clk)

    MainWindow.show()
def btn_clk(self):
    L = [1,2,3,4,5]
    pg.plot(L)
Run Code Online (Sandbox Code Playgroud)

我尝试使用这一行来嵌入情节,但它不起作用:

    self.pushButton.clicked.connect(self.btn_clk)

    MainWindow.show()
def btn_clk(self):
    L = [1,2,3,4,5]
    self.graphicsView.plot(L)
Run Code Online (Sandbox Code Playgroud)

这是完整的代码:

import pyqtgraph as pg
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(662, 512)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setObjectName("lineEdit")
        self.verticalLayout.addWidget(self.lineEdit)
        self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget)
        self.graphicsView.setObjectName("graphicsView")
        self.verticalLayout.addWidget(self.graphicsView)
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setObjectName("pushButton")
        self.verticalLayout.addWidget(self.pushButton)
        self.horizontalLayout.addLayout(self.verticalLayout)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 662, …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqtgraph pyqt5

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

OpenCV 中圆周围的锯齿状边缘 - Python

正如标题所说,我正在尝试修复我在 OpenCV 中创建的圆圈周围的锯齿状边缘。

我试了几件事情,即cv2.blur()cv2.filter2D()他们并没有这样做的伎俩。

import numpy as np
import cv2
import random

for i in range(5):
    img = np.zeros((512,512,3), np.uint8)
    H = random.choice(list(range(100,500)))
    V = random.choice(list(range(100,500)))
    S = random.choice(list(range(30,150)))

    cv2.circle(img,(H,V), S, (0,0,255), -1)

    img = cv2.resize(img,(750,750))
    f = (3-len(str(i)))*'0'+str(i)
    cv2.imwrite('circle%s.jpg' % f, img)

cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

python opencv cv2

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

使用 ffmpeg 在音频文件中的单词之间添加静音

我想做的是concat wav包含短音频的文件。我可以将concat它们放入一个文件中,但我试图在特定时间设置每个文件。

目前,我可以查看concat这些文件,但无法将每个文件放置在需要的特定时间。我想也许我可以在他们之间添加适当的沉默,这样就可以解决问题。我是新来的ffmpeg

我有一个文本文件,其文件名是text.txt

file a.wav
file b.wav
file c.wav
Run Code Online (Sandbox Code Playgroud)

我使用这个命令:

ffmpeg -f concat -i text.txt out.mp3
Run Code Online (Sandbox Code Playgroud)

这可行,但是有没有办法在它们之间添加指定分钟数的沉默?

我尝试将其放入文本文件中,但没有成功:

file a.wav
inpoint 5
outpoint 10
file b.wav
inpoint 10
outpoint 20
file c.wav
inpoint 20
outpoint 25
Run Code Online (Sandbox Code Playgroud)

ffmpeg ffmpy

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