我正在寻找基于特定分区聚合值的最佳方法,相当于
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)
非常感谢您阅读!
我有一个问题,下面的行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) 我之前回答了一个问题,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)
这从字符串中删除了反斜杠,但我的答案被低估了,我收到一条评论说" 我的答案有很多问题,很难计算 "我完全相信我的答案可能是错的,但我想要知道为什么我可以从中学习.但是,作者删除了这个问题,所以我无法回答那里的评论来提出这个问题.
我正在使用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) 我用来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) 正如标题所说,我正在尝试修复我在 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)
我想做的是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)