python saveas_Python中正确的Save-As函数

我有一个默认的saveas函数绑定到一个按钮点击,它调用一个模式窗口。

另外,我还有一个函数,它将所需的数组保存为.xlsx文件。在self.data_processing.clicked.connect(self.process)

def process(self):

sample = pd.read_excel(self.fileName)

list_of_index = []

for i in range(len(sample.columns)):

sample2 = sample.iloc[:, lambda sample: [i]]

sample2 = sample2.columns[0]

list_of_index.append(sample2)

list_of_index

... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

... ... Area where all the data is computed ... ... ...

... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

workbook = xlsxwriter.Workbook('Sample.xlsx')

worksheet1 = workbook.add_worksheet()

worksheet2 = workbook.add_worksheet()

worksheet3 = workbook.add_worksheet()

worksheet4 = workbook.add_worksheet()

row = 0

for col, data in enumerate(fulllist):

worksheet1.write_column(row, col, data)

for col, data in enumerate(fulllist_percent):

worksheet2.write_column(row, col, data)

for col, data in enumerate(fulllist_click):

worksheet3.write_column(row, col, data)

for col, data in enumerate(additional_info):

worksheet4.write_column(row, col, data)

workbook.close()

基本上,我要问的是:如何在saveFile()中插入xlsx writer,以便使用默认的saveAs窗口将数组保存为xlsx

我的用户界面代码

^{pr2}$

我的主程序import os

import sys

import pandas as pd

import numpy

import scipy.stats

import xlsxwriter

from PyQt5.QtWidgets import QApplication, QMainWindow, qApp, QWidget, QInputDialog, QLineEdit, QFileDialog, QMessageBox

from PyQt5.QtCore import Qt, QEvent, QObject

from PyQt5.QtCore import pyqtSlot

from ui_main import Ui_MainWindow

class MyMainWindow(QMainWindow, Ui_MainWindow):

def __init__(self, parent=None):

super(MyMainWindow, self).__init__(parent)

qApp.installEventFilter(self)

self.setupUi(self)

self.dataChooseBtn.clicked.connect(self.selectFile)

self.saveClick_btn.clicked.connect(self.saveFile)

self.saveSample_btn.clicked.connect(self.saveSample)

self.paramInput_accept.clicked.connect(self.accept)

self.data_processing.clicked.connect(self.process)

self.show()

def eventFilter(self, obj, event):

if event.type() == QEvent.KeyPress:

if event.key() == Qt.Key_Escape:

self.close()

return super(MyMainWindow, self).eventFilter(obj, event)

@pyqtSlot()

def accept(self):

textboxValue = self.paramInput_field_2.text()

QMessageBox.information(self, 'Message', "Значения параметрического столбца: " + textboxValue, QMessageBox.Ok, QMessageBox.Ok)

def selectFile(self):

self.fileName = None

options = QFileDialog.Options()

options |= QFileDialog.DontUseNativeDialog

fileName, _ = QFileDialog.getOpenFileName(self,"Выберите стандартизированную выборку", "","All Files (*);;Python Files (*.py)", options=options)

if fileName:

print(fileName)

self.fileName = fileName

def process(self):

sample = pd.read_excel(self.fileName)

list_of_index = []

for i in range(len(sample.columns)):

sample2 = sample.iloc[:, lambda sample: [i]]

sample2 = sample2.columns[0]

list_of_index.append(sample2)

list_of_index

fulllist = []

for i in list_of_index:

sample3 = sample[i].tolist()

fulllist.append(sample3)

fulllist_percent = []

column_percent = []

len(fulllist)

for i in range(len(fulllist)):

for j in range(len(fulllist[i])):

percent_rank = scipy.stats.percentileofscore(fulllist[i], fulllist[i][j])

column_percent.append(percent_rank)

fulllist_percent.append(column_percent)

column_percent = []

fulllist_rank = []

for i in range(len(fulllist)):

rank = len(fulllist[i]) - scipy.stats.rankdata(fulllist[i]) + 1

fulllist_rank.append(rank)

param = self.paramInput_field_2.text()

param = [float(i) for i in param.split(',')]

param_rank = scipy.stats.rankdata(param).astype(int)

column_corr = []

for i in range(len(fulllist)):

correlation = scipy.stats.spearmanr(param_rank[::-1], fulllist_rank[i])

column_corr.append(correlation[0])

fulllist_click = []

for j in range (len(fulllist_percent)):

middle = []

if column_corr[j] > 0:

for i in range(len(fulllist_percent[j])):

solve = column_corr[j] * fulllist_percent[j][i]

middle.append(solve)

else:

for i in range (len(fulllist_percent[j])):

solve = abs(column_corr[j]) * (100 - fulllist_percent[j][i])

middle.append(solve)

fulllist_click.append(middle)

list_of_rowsumm = []

rowsumm = 0

fulllist_clickT = numpy.asarray(fulllist_click).T.tolist()

for i in range(len(fulllist_clickT)):

rowsumm = sum(fulllist_clickT[i])

list_of_rowsumm.append(rowsumm)

percent_rowsumm = []

for i in list_of_rowsumm:

x = scipy.stats.percentileofscore(list_of_rowsumm, i)

percent_rowsumm.append(x)

additional_info = []

additional_info.append(list_of_rowsumm)

additional_info.append(percent_rowsumm)

self.fulllist = fulllist

self.fulllist_percent = fulllist_percent

self.fulllist_click = fulllist_click

self.additional_info = additional_info

workbook = xlsxwriter.Workbook('Sample.xlsx')

worksheet1 = workbook.add_worksheet()

worksheet2 = workbook.add_worksheet()

worksheet3 = workbook.add_worksheet()

worksheet4 = workbook.add_worksheet()

row = 0

for col, data in enumerate(fulllist):

worksheet1.write_column(row, col, data)

for col, data in enumerate(fulllist_percent):

worksheet2.write_column(row, col, data)

for col, data in enumerate(fulllist_click):

worksheet3.write_column(row, col, data)

for col, data in enumerate(additional_info):

worksheet4.write_column(row, col, data)

workbook.close()

# return self.fulllist, self.fulllist_percent, self.fulllist_click, self.additional_info

def saveSample(self):

options = QFileDialog.Options()

options |= QFileDialog.DontUseNativeDialog

fileNameSave, _ = QFileDialog.getSaveFileName(self,"QFileDialog.getSaveFileName()","","Excel files (*.xlsx)", options=options)

return fileNameSave

print(fileNameSave)

workbook = xlsxwriter.Workbook()

worksheet1 = workbook.add_worksheet()

worksheet2 = workbook.add_worksheet()

worksheet3 = workbook.add_worksheet()

worksheet4 = workbook.add_worksheet()

row = 0

for col, data in enumerate(self.fulllist):

worksheet1.write_column(row, col, data)

for col, data in enumerate(self.fulllist_percent):

worksheet2.write_column(row, col, data)

for col, data in enumerate(self.fulllist_click):

worksheet3.write_column(row, col, data)

for col, data in enumerate(self.additional_info):

worksheet4.write_column(row, col, data)

workbook.close()

if __name__ == '__main__':

app = QApplication(sys.argv)

win = MyMainWindow()

sys.exit(app.exec_())


版权声明:本文为weixin_33158887原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。