Tag: python 3.x

从excel正确转换为csv

我有一个工作表(Sheet1)的Excel(.xls),我想用python 3将它转换成csv。我发现这个代码: import xlrd import csv def csv_from_excel(): wb = xlrd.open_workbook('safir/fisier-safir.xls') sh = wb.sheet_by_name('Sheet1') your_csv_file = open('safir.csv', 'w') wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL) for rownum in range(sh.nrows): wr.writerow(sh.row_values(rownum)) your_csv_file.close() csv_from_excel() 但与此问题是,这种方法将不会保留Excel格式的某些数字,1将成为1.00,001 – > 1.0,0,9 – > 1,所有这种格式的问题,如果我做转换的Excel – > csv手动我不会发现这个问题,我也得到了与其他脚本类似的问题,做一个人有一个适当的? 谢谢!

使用Python 3.5parsing所有Excel公式的最快方法

作为一个更大的testing集的一部分,我需要提取上传的Excel工作簿中的所有公式。 然后我需要将每个公式parsing到各自的范围引用中,并将这些引用转储到一个简单的数据库中。 例如,如果单元格A1具有公式= B1 + C1,则我的数据库将loggingB1和C1作为引用的单元格。 目前我使用openpyxl一次读取一个公式,然后parsing它们。 这对于较小的工作簿来说很好,但是对于大型工作簿来说,它可能非常慢。 这感觉完全没有效率。 pandas或类似的模块可以更快地提取Excel公式吗? 或者,也许有更好的方法来提取所有的工作簿公式,而不是一次只读一个单元格? 任何意见将不胜感激。

为每个数据点创build新的行

如何在pandas数据框中为每个数据点创build一个新行。 例如: id |2016 |2015 |2014 ID1|1|2|3 ID2|4|5|6 ID3|7|8|9 转换成: idnum| Date |Datapoint_Value ID1|2014|3 ID2|2014|6 ID3|2014|9 ID1|2015|2 ID2|2015|5 ID3|2015|8 ID1|2016|1 ID2|2016|4 ID3|2016|7 我正在使用pandas从Excel中导入数据,并希望存储在一个空的数据框,然后写入一个CSV文件。 import pandas as pd raw_data = pd.read_excel(open('C:\\Python_Loops\\New_doc.xlsx', 'rb'), sheetname='Advances & Redraw') # Raw data twisted_df = pd.DataFrame()

从excel文件列中读取列表并将其存储在python列表中

我知道这个问题的一部分可能很简单,但我是一个初学者,并会真正感谢最简单的解决scheme:我有一个Excel(.xlsx文件)其中一列的单元格中有一个列表的列表数字(空格分隔的数字,每个列表的末尾都有空格)。 所以,这个列看起来像这样: ColumnHeader [[[9 9 9 9 9 13 ][11 11 11 11 11 11 ][11 11 11 11 11 11 ][9 9 9 9 9 9 ] [[[9 9 9 9 9 9 ][9 9 9 9 9 9 ]]] [[[9 9 9 9 ][14 14 14 14 ][13 13 13 13 ]]] 请注意每个列表如何具有不同数量的列表。 […]

当它到达python的excel文件的末尾时退出while循环

嗨,我是新的python,并尝试一些代码,使我的工作更容易。 所以这里是我的代码 counter = 0 while True: row_values = worksheet.row_slice(counter+1,start_colx=0, end_colx=4) row['Dealer'] = int(row_values[0].value) row['Name'] = str(row_values[1].value) row['City'] = str(row_values[2].value) counter += 1 if not row['Dealer']: break 我试图打破while循环行['Dealer']为空,即到达Excel文件的末尾。 但似乎没有办法。 它不断给IndexError:列表索引超出范围 。 一些帮助,将不胜感激。 谢谢 您好我编辑我的代码如下: counter = 0 while True: row_values = worksheet.row_slice(counter+1,start_colx=0, end_colx=30) row['gg'] = worksheet.cell_value(1+counter,1).strip() if not row['gg']: break row['Dealer'] = int(row_values[0].value) row['Name'] = […]

pandas重新定义是不能忽略“不适用”

作为数据分析练习的一部分,我正在将excel表格读入pandas数据框。 df = pd.ExcelFile('file.xlsx').parse(0) nullcounts = df.isnull().sum().to_frame('null_records') 用我的数据框中的每个系列的空数生成一个很好的框架。 但是,如果string“NA”出现在一行数据中,我不希望isnull操作返回True 。 有没有一个简单的方法来做到这一点,没有硬编码特定列/数据框的规则? 编辑:看来,我的源数据中的NA被读入pandas时被忽略,因为当我加载数据,并在视觉上比较时,我看到NaN在哪里在Excel中有NA 。

在使用csv数据时,Python-xlsxwriter只能以文本forms写入

我想用python的xlsxwriter包创build一个excel文件。 目前我已经完成了所有的格式化,现在我需要做的是导入正确的数据。 为此,我使用csv包来读取一个csv / txt文件。 但是,当我从csv中读取数据并将其输出到xlsx文件时,所有的数字/​​date/ etc都被作为文本进行了处理。 我相信这是因为当我读取每个数据点中的文件是由单引号括起来(例如:'00082424')。 这导致Excel读取它作为文本(它甚至会抛出一个小小的错误说,它看起来像一个数字前面有一个'),结果保持前导零。 我怎样才能从csv中读取我的数据,并使用xlsxwriter将其导出,以便所有内容都不会以“?”开头。 以下是我用于读入和输出的代码的删节版本: import csv import xlsxwriter """ Create a workbook and add worksheets """ workbook = xlsxwriter.Workbook('Test.xlsx') worksheet1 = workbook.add_worksheet('Raw Data') """ Read csv file """ with open("filename.txt") as filein: reader = csv.reader(filein, skipinitialspace = True) ind, c, d, e, f, g, h, i, j, k, […]

这是一个很好的库,用Python 3来读写MS excel文件

哪些可以成为与Pythonpython使用成熟的库3.3 +我看了xlutils,但这只是python2.x而其他人看起来不稳定或被放弃

Xlwings – 添加列

我正在使用xlwings,并试图求和两个单元格A1 + B1,并将输出input到第三个单元格C1中。 我想要做一个范围(A1-> A9)+(B1-> B9)并将它们写入单元格(C1-> C9)。 我的当前命令是Range('C3')。value = [zip(range('A3:A9')。value,Range('B3:B9')。value)]中的x的总和正确,但答案是水平写出到单元格C3-I3。 我知道命令Range('A1')。value = [[1],[2],[3],[4],[5]]会列出列表的元素,但我不知道如何将其纳入我的命令。 任何帮助,将不胜感激

xlwings没有名为“win32api”的模块

刚开始学习今天。 我正在尝试使用Python来处理一些数据(将它们从多个表单合并到一个不同的格式)。 我正在关注xlwings安装文档( http://docs.xlwings.org/installation.html#dependencies ),它表明我需要pywin32。 它build议你使用pywin32自带的Anaconda。 我按照这里的说明安装了Anaconda( http://continuum.io/downloads#all )。 然后我去运行一些xlwings快速启动命令 from xlwings import Workbook, Sheet, Range, Chart 我得到的错误:没有模块名为“win32api” 一些注意事项:1)我不知道pywin32实际上是什么,以及如何使用它,所以如果我在这里使用任何错误的名字 – 这就是为什么。 我也有0 Python的经验,所以只是设置它花了我几个小时2)我在Macbook Pro上运行Parallels上的64位窗口。 我的Python是3.4.3 64位。 我安装的Anaconda 3.4是64位的 任何帮助是极大的赞赏。