Tag: pandas

pandas:用合并单元格读取Excel

我有多个工作表的Excel文件,其中每个看起来有点像这样(但更长): Sample CD4 CD8 Day 1 8311 17.3 6.44 8312 13.6 3.50 8321 19.8 5.88 8322 13.5 4.09 Day 2 8311 16.0 4.92 8312 5.67 2.28 8321 13.0 4.34 8322 10.6 1.95 第一列实际上是四个垂直合并的单元格。 当我使用pandas.read_excel读取它时,我得到一个如下所示的DataFrame: Sample CD4 CD8 Day 1 8311 17.30 6.44 NaN 8312 13.60 3.50 NaN 8321 19.80 5.88 NaN 8322 13.50 4.09 Day […]

pandas可以阅读和修改一个Excel文件工作表(选项卡),而无需修改文件的其余部分?

许多电子表格都有公式和格式,用于读取和写入Excel文件的Python工具不能忠实地重现。 这意味着我想要以编程方式创build的任何文件都必须是我从头开始创build的,然后其他Excel文件(具有上述复杂性)必须引用该文件(这会创build各种其他依赖项问题)。 我对Excel文件“选项卡”的理解是,它们实际上只是XML文件的集合。 那么,是否有可能使用pandas(或基本的读/写引擎之一,如xlsxwriter或openpyxl修改只是其中一个标签,其他标签(有更多邪恶的东西在那里)完好? 编辑:我会尝试进一步阐明一个例子的问题。 Excel工作表test.xlsx有四个选项卡(即工作表):Sheet1,Sheet2,Sheet3,Sheet4 我使用pandas.read_excel()将Sheet3读入DataFrame(我们称之为df) Sheet1和Sheet2包含公式,graphics以及各种格式,而且openpyxl和xlrd都不能成功parsing,而Sheet4包含其他数据。 我根本不想触摸这些标签。 Sheet2实际上有一些对Sheet3单元格的引用 我对df进行了一些编辑,现在想把它写回到sheet3中,而不改变其他工作表(以及工作簿中其他工作表的引用) 我可以这样做,如果是这样,怎么办?

pandasxlsxwriter,格式标题

我使用xlsxwriter将pandas DataFrame保存为_excel。 我设法格式化所有的数据(设置列宽,字体大小等),除了改变标题的字体,我找不到方法来做到这一点。 这是我的例子: import pandas as pd data = pd.DataFrame({'test_data': [1,2,3,4,5]}) writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter') data.to_excel(writer, sheet_name='test', index=False) workbook = writer.book worksheet = writer.sheets['test'] font_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10}) header_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10, 'bold': True}) worksheet.set_column('A:A', None, font_fmt) worksheet.set_row(0, None, header_fmt) writer.save() 尝试设置标题格式的倒数第二行不做任何事情。

把许多pythonpandas数据框放到一个excel工作表中

只要是不同的工作表,将许多pandas数据框添加到Excel工作簿中是相当容易的。 但是,如果要使用“pandas”内置的df.to_excelfunction,将多个数据框合并到一个工作表中会有些棘手。 # Creating Excel Writer Object from Pandas writer = pd.ExcelWriter('test.xlsx',engine='xlsxwriter') workbook=writer.book worksheet=workbook.add_worksheet('Validation') df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0) another_df.to_excel(writer,sheet_name='Validation',startrow=20, startcol=0) 上面的代码将不起作用。 你会得到错误的 Sheetname 'Validation', with case ignored, is already in use. 现在,我已经做了足够的尝试,find了一种使其工作的方法。 writer = pd.ExcelWriter('test.xlsx',engine='xlsxwriter') # Creating Excel Writer Object from Pandas workbook=writer.book df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0) another_df.to_excel(writer,sheet_name='Validation',startrow=20, startcol=0) 这将工作。 所以,我在stackoverflow上发布这个问题的目的是双重的。 首先,我希望这将帮助某人,如果他/她在Excel中试图将许多数据框放在一个工作表中。 其次,有人能帮我理解这两个代码块之间的区别吗? 在我看来,他们几乎是相同的,除了第一块代码创build工作表提前“validation”,而第二块没有。 我得到那部分。 我不明白的是为什么它有什么不同呢? 即使我不提前创build工作表,这行,最后一行之前, […]

Python pandas to_excel'utf8'编解码器无法解码字节

我正在尝试在Pythonpandas中做一些数据工作,并且无法写出我的结果。 我读取我的数据作为一个CSV文件,并导出每个脚本,因为它是自己的CSV文件,工作正常。 最近虽然我已经尝试导出1 Excel文件中的所有工作表和一些表单给我一个错误 “'utf8'编解码器无法解码位置1中的字节0xe9:无效的继续字节” 我不知道如何甚至开始find任何可能导致出口到Excel问题的字符。 不知道为什么它出口到CSV只是罚款: 相关线路 from pandas import ExcelWriter data = pd.read_csv(input) writer = ExcelWriter(output) #output is just the filename fundraisers.to_excel(writer, "fundraisers") locations.to_excel(writer, "locations") #error locations.to_csv(outputcsv) #works writer.save() 打印头的问题dataframe Event ID Constituent ID Email Address First Name \ Last Name f 1 AA 1 F 4 LRC M 1 1 AD F […]

pandas可以使用列作为索引吗?

我有一个这样的电子表格: Locality 2005 2006 2007 2008 2009 ABBOTSFORD 427000 448000 602500 600000 638500 ABERFELDIE 534000 600000 735000 710000 775000 AIREYS INLET459000 440000 430000 517500 512500 我不想手动交换列的行。 是否有可能使用pandas阅读数据列表如下: data['ABBOTSFORD']=[427000,448000,602500,600000,638500] data['ABERFELDIE']=[534000,600000,735000,710000,775000] data['AIREYS INLET']=[459000,440000,430000,517500,512500]

如何从XLS文件中获取图表名称而不加载整个文件?

我目前使用pandas来读取一个Excel文件,并向用户展示它的表名,以便他可以select他想使用的表格。 问题是这些文件真的很大(70列x 65k行),最多需要14s才能加载到笔记本上(CSV文件中的相同数据需要3s)。 我在pandas的代码是这样的: xls = pandas.ExcelFile(path) sheets = xls.sheet_names 我以前试过xlrd,但是获得了类似的结果。 这是我的代码与xlrd: xls = xlrd.open_workbook(path) sheets = xls.sheet_names 那么,有没有人可以build议一个更快的方式来从Excel文件检索表名称比读取整个文件?

有没有办法用pandas.ExcelWriter自动调整Excel列的宽度?

我被要求生成一些Excel报告。 我目前对我的数据使用大量的pandas,所以自然我想使用pandas.ExcelWriter方法来生成这些报告。 但固定的列宽是一个问题。 我到目前为止的代码很简单。 假设我有一个名为“df”的数据框: writer = pd.ExcelWriter(excel_file_path) df.to_excel(writer, sheet_name="Summary") 我正在查看pandas代码,我没有看到任何设置列宽的选项。 宇宙中是否有一个窍门可以使列自动适应数据? 还是有事情后,我可以做xlsx文件来调整列的宽度? (我正在使用OpenPyXL库,并生成.xlsx文件 – 如果这有什么不同)。 谢谢。

使用Pandas为同一工作簿的多个工作表指定pd.read_excel()

我有一个大的电子表格文件(.xlsx),我正在使用Pythonpandas处理。 碰巧,我需要从该大文件中的两个选项卡中获取数据。 其中一个标签有大量的数据,另一个只有几个方格。 当我在任何工作表上使用pd.read_excel()时,它看起来像整个文件被加载(不只是我感兴趣的工作表)。 所以当我使用这个方法两次(每个表单一次)时,我实际上不得不让整个工作簿被读取两次(即使我们只使用指定的表格)。 我是用错了还是仅仅用这种方式来限制? 谢谢!