我有一个默认的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_())

python saveas_Python中正确的Save-As函数相关推荐

  1. python类中调用另一个程序函数_Python:如何在另一个类中调用函数

    我被一些python脚本困住了 https://python4kids.brendanscott.com/2014/12/02/hooking-up-the-sunfish-chess-engine- ...

  2. Python—pandas中DataFrame类型数据操作函数

    python数据分析工具pandas中DataFrame和Series作为主要的数据结构.  本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数.  1)查看DataFram ...

  3. 在python子程序中、使用关键字_python函数(四)

    一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pasc ...

  4. 解释一下python numpy 中的amin()函数

    主要是在网上查找amin()函数时难找(可能我太菜,勿喷),故在研究后来解释一下. numpy中amin,amax的axis选项是轴的方向,但注意,对于一个三维数组,选用0作为轴序,是在页轴方向上选取 ...

  5. Python numpy中的hsplit()和vsplit()函数详细解释

    在网上看到了一些关于vsplit()函数和hsplit()函数的解释,感觉不是很好理解, 同时有的也不是很全面.这里我想根据我的个人理解,用我自己的语言表达出这两个函数的解释. hsplit():按列 ...

  6. python查看dataframe数据类型_python pandas中DataFrame类型数据操作函数的方法

    python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFrame数 ...

  7. python dataframe函数_python pandas中DataFrame类型数据操作函数的方法

    这篇文章主要介绍了关于python pandas中DataFrame类型数据操作函数的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 python数据分析工具pandas中Data ...

  8. python一行输出多个数据_如何在Python中让两个print()函数的输出打印在一行内?

    1.两个连续的print()函数为什么在输出时内容会分行显示? 解:print()中有两个默认参数sep和end,其中sep是代替分隔符,end是代替末尾的换行符,默认使用','代替空格,且默认末尾加 ...

  9. 在python中有关函数的表达正确的是_在 Python 中有关函数的表达中正确的是( )。_学小易找答案...

    [单选题]会稽有佳山水,名士多居之,爱好养生的王羲之常与( )等宴集于山阴之兰亭. [判断题]截交线既在截平面上,又在立体表面上,故截交线是截平面与立体表面的共有线,截交线上每一点均为其共有性. [单 ...

  10. python中numpy函数fft_如何在PyTorch中正确使用Numpy的FFT函数?

    我最近被介绍给Pythorch,开始浏览图书馆的文档和教程. 在"使用numpy和scipy创建扩展"教程中( http://pytorch.org/tutorials/advan ...

最新文章

  1. HDOJ 1166 敌兵布阵
  2. 利用mongodb开发lbs应用实践【转】
  3. c语言考博真题,中国科学院2015年考博英语真题及答案
  4. 一些c中常用的功能函数
  5. WebLogic下部署war包
  6. wire routing 网格寻址
  7. linux 二进制编辑工具,全网最全Linux的十大十进制编辑器,要接触Linux的你摆脱不了...
  8. HMM隐马尔科夫模型及股票预测
  9. win7系统 winload.efi 文件损坏 报 0xc0000428 错误 不重装系统解决方法
  10. HTML5基本标签使用header,nav和footer
  11. 【已解决】 “discovered_interpreter_python“: “/usr/bin/python“
  12. 游戏模型(3A)和影视模型(cg)的区别以及发展前景?
  13. 矩阵求逆的一万种方法
  14. 噩梦射手(SurvivalShooter)教程(八)
  15. 永信至诚成功当选CNCERT网络安全应急服务支撑单位
  16. 《人类简史》笔记三—— 历史从无正义
  17. Basic Authorization 认证方法
  18. 【摘要】STC系列单片机ISP编程器/烧录器的说明
  19. 一文弄懂数据结构中的红黑树、二叉树
  20. [转载] 罗辑思维的「成功」之道

热门文章

  1. 利用MATLAB计算输出响应,[笔记]离散系统的频率响应和输出响应的matlab实现.doc
  2. 推荐 5 个免费高品质的图片资源网站
  3. 如何在Mac上裁剪图片,教你几个技巧
  4. Syntax error on token?excepted agter this token
  5. adams功能区不显示_Word 空白的页面显示与隐藏,与五种试图的简介操作技巧
  6. Laravel文档梳理4、控制器
  7. 搜狐财报:铠甲不硬,需要新杀手锏
  8. 网上赚钱的平台哪个好?7个方式总有你喜欢的!
  9. 163邮箱 java发送html邮件,java邮件发送 qq与163邮箱互发和qq和163邮箱发送其余邮箱实例...
  10. deepin linux 安装 磁盘管理,deepin安装教程