Tag: python 3.x

将多个csv文件合并到单个xls工作簿Python 3中

我们正在从python 2.7转换到python 3.5。 这是一个公司范围内的变化,我们目前的大部分脚本都是用2.7编写的,没有额外的库。 我利用了我们正在使用的Anaconda发行版,并已经使用2to3模块更改了大部分脚本,或者完全重写了它们。 我被卡在一块代码,虽然我没有写,原来的作者不在这里。 他也没有提供评论,所以我只能猜测整个脚本。 95%的脚本正常工作,直到创build7个带有不同parsing信息的csv文件的结尾,它具有一个自定义函数,可以将csv文件合并到xls工作簿中,并将每个csv作为新的选项卡。 import csv import xlwt import glob import openpyxl from openpyxl import Workbook Parsefiles = glob.glob(directory + '/' + "Parsed*.csv") def xlsmaker(): for f in Parsefiles: (path, name) = os.path.split(f) (chort_name, extension) = os.path.splittext(name) ws = wb.add_sheet(short_name) xreader = csv.reader(open(f, 'rb')) newdata = [line for line in xreader] […]

Python 3 – xlwt保存工作簿错误

我正在用Python 3.6编写一个小程序,它读取一个excel文件,然后修改一个单元格的格式。 我想在同一个单元格内的多个格式,所以我用xlwt write_rich_text : import xlrd import xlwt from xlutils.copy import copy col = 0 row = 0 rb = xlrd.open_workbook('test.xls', formatting_info=True) r_sheet = rb.sheet_by_index(0) text_cell = r_sheet.cell_value(row, col) book = copy(rb) first_sheet = book.get_sheet(0) font1 = xlwt.easyfont('struck_out true, color_index red') font2 = xlwt.easyfont('color_index green') seg1 = (text_cell[0:10], font1) seg2 = (text_cell[10:], font2) first_sheet.write_rich_text(row, […]

附加数据框,以大pandas

我希望将数据框追加到excel中 这个代码几乎像愿望一样工作。 虽然每次都不附加。 我运行它,它把数据框架在Excel中。 但是每次运行它都不会追加。 我也听说openpyxl是cpu密集型的,但没有听说过很多解决方法 。 import pandas from openpyxl import load_workbook book = load_workbook('C:\\OCC.xlsx') writer = pandas.ExcelWriter('C:\\OCC.xlsx', engine='openpyxl') writer.book = book writer.sheets = dict((ws.title, ws) for ws in book.worksheets) df1.to_excel(writer, index = False) writer.save() 我希望每次运行数据时都要附加数据,这不会发生。 数据输出看起来像原始数据: ABC HHH 我想在第二次运行后 ABC HHH HHH 道歉,如果这是显而易见的,我新来的python和我练习的例子没有按要求工作。 问题是 – 每次运行我怎样才能追加数据。 我尝试更改为xlsxwriter但获取AttributeError: 'Workbook' object has no attribute 'add_format'

如何删除从pandas的Excel中读取的重复列

excel中的数据: abad 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 码: df= pd.io.excel.read_excel(r"sample.xlsx",sheetname="Sheet1") df ab a.1 d 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 如何删除a.1列? 当大pandas从excel中读取数据时,会自动将第二个a的列名改为a.1。 我试过df.drop("a.1",index=1) ,这是行不通的。 我有一个巨大的Excel文件,其中有重复的名称,我只感兴趣的列数。

使用Openpyxl将工作表从一个工作簿复制到另一个工作表

我有大量的EXCEL文件(即200)我想复制一个特定的工作表从一个工作簿到另一个。 我做了一些调查,我找不到用Openpyxl做的一个方法 这是迄今为止我所开发的代码 def copy_sheet_to_different_EXCEL(path_EXCEL_read,Sheet_name_to_copy,path_EXCEL_Save,Sheet_new_name): ''' Function used to copy one EXCEL sheet into another file. def path_EXCEL_read,Sheet_name_to_copy,path_EXCEL_Save,Sheet_new_name Input data: 1.) path_EXCEL_read: the location of the EXCEL file along with the name where the information is going to be saved 2.) Sheet_name_to_copy= The name of the EXCEL sheet to copy 3.) path_EXCEL_Save: The path of […]

我如何使这个函数连接来自单个文件的Excel工作表更高效?

我有几个Excel文件,我想从中生成单独的数据框,这将是每个文件中的任意子表单的连接。 重要的是我能够对表单进行子集分类(在这里我通过索引到sheet_names的列表),并且以某种方式跟踪出处(正如我在这里用assign方法所做的那样)。 这个代码目前可行,但是我担心我错过了一些基本的方法来提高效率(比如当我用一个20页的文件结束时)。 我已经回顾了其他几个与连接多个CSV或Excel文件有关的问题,但很难将这些问题归结为在一个文件中parsing工作表的问题,从效率的angular度来看。 这个问题部分是由于我曾经使用过的生成器来连接Excel文件,但我很难将这些情况推广到这个。 在GitHub上的示例Excel文件 import pandas as pd import xlrd import xlwt def file_parser(file): df_list = [] for x in file.sheet_names[1::]: df = file.parse(x).assign(Source=x) df_list.append(df) return df_list 1 如何parsingExcel表格中的数据框(使用Python,可能是Pandas) 将多个csv文件导入到pandas并连接成一个DataFrame Pands ExcelFile.parse()以dict读取文件,而不是数据框

如何设置一个特定的列到inttypes的pandas

我有这个脚本来写一些CSV文件到一个文件夹的Excel中: from pandas.io.excel import ExcelWriter import pandas import os path = 'data/' ordered_list = sorted(os.listdir(path), key = lambda x: int(x.split(".")[0])) with ExcelWriter('my_excel.xlsx') as ew: for csv_file in ordered_list: pandas.read_csv(path + csv_file).to_excel(ew, index = False, sheet_name=csv_file[:-4], encoding='utf-8') 现在我的问题是,所有的列(比如说G:H)都是string格式(例如'400或'10),之前我认为它们是string,因为csv将它们转换为string,我需要它们诠释,我怎么可以使G:H INT? 我用python 3,谢谢! PS(这是一个CSV样本): ANPIS,,,,,,, AGENTIA JUDETEANA PENTRU PLATI SI INSPECTIE SOCIALA TIMIS,,,,,,, ,,,,,,, Macheta Comparativa CREDITORI – […]

如何使用pandas分成两列?

我正在研究一个algorithm,它需要按两列进行分组。 pandas支持使用两列进行分组: df.groupby([col1, col2]) 但是结果dataframe不是必需的dataframe 工作设置: Python: v3.5 pandas: v0.18.1 pandas数据框 – input数据: Type Segment id 1 Domestic 1 2 Salary 3 3 NRI 1 4 Salary 4 5 Salary 3 6 NRI 4 7 Salary 4 8 Salary 3 9 Salary 4 10 NRI 4 所需数据框:每个细分市场[国内,薪资,NRI]的数量 Domestic Salary NRI Segment 1 1 3 1 […]

将类似目录下的多个CSV文件转换为XLSX文件

我将类似目录下的多个CSV文件转换为XLSX文件。 CSV具有分隔符作为选项卡。 我执行该程序,并设法生成XLSX文件。 但是, XLSX文件不是由该选项卡分开。 请查看我的代码,并告诉我什么是错的。 在第10行中,我将分隔符指定为选项卡,但生成的XLSX文件未分隔。 import os import glob import csv import openpyxl for csvfile in glob.glob(os.path.join(r'(my directory)', '*.csv')): wb = openpyxl.Workbook() ws = wb.active with open(csvfile, 'r') as f: reader = csv.reader(f, delimiter='\t') for r, row in enumerate(reader, start=1): for c, val in enumerate(row, start=1): ws.cell(row=r, column=c).value = val wb.save(csvfile + '.xlsx')

在openpyxl生成的XLSX文件中正确渲染新行

我使用openpyxl来打开一个.xlsx文件,更新其中的一些值,并保存为一个不同的.xlsx文件。 我正在尝试添加一个新行的脚注: # example code wb = openpyxl.load_workbook('file.xlsx') sheet = wb.get_sheet_by_name('Sheet1') sheet.header_footer.left_footer.font_size = 7 sheet.header_footer.left_footer.text = '&BSome text&B\nMore text\nEven more' sheet.header_footer.right_footer.font_size = 7 sheet.header_footer.right_footer.text = 'Page &P of &N' wb.save('new_file.xlsx') 但是当我打开新创build的文件并查看页脚时, \n会以奇怪的方式被replace: Some text^lMore text^pEven more 我也注意到,如果我尝试在libreoffice的帮助下将其转换为PDF,例如: os.system('libreoffice –headless –invisible –convert-to pdf –outdir /path/on/disk new_file.xlsx') 生成的PDF再次呈现给不同的东西: Some text_x000D_More text_x000D_Even more 我怎样才能在页脚中正确生成新行? (值得一提的是,我在Ubuntu 14.04上使用了openpyxl 2.3.3和Python 3.4,LibreOffice的版本是5.0.5.2)