Tag: pandas

xlsxwriter – Excel饼图的图例 – python

我有一个Excel标签(工作表)的Excel文件。 每个工作表具有相同的结构并包含两列 – 第一列包含品牌名称,第二列包含与每个品牌对应的值。 对于excel文件中的每张表格,我想制作一个饼图,显示每个品牌的份额。 您可以用来运行脚本的示例xls文件就在这里 我写的代码很简单,生成图表。 问题在于图表的图例需要序列号名称而不是品牌的名称。 import pandas as pd import xlsxwriter as excel df = pd.read_excel("/Users/jack/Documents/python-pptx/filename", sheetname=None) workbook = excel.Workbook('/Users/jack/Documents/python-pptx/chart_pie.xlsx') for sheetname, data in df.iteritems(): if len(data) > 0: worksheet = workbook.add_worksheet(sheetname) chart = workbook.add_chart({'type': 'pie'}) worksheet.write_column('A1', data['Brand']) worksheet.write_column('B1', data['Share_of_interactions']) chart.add_series({'categories': '='+sheetname+'!$A$1:$A$'+str(len(data)), 'values': '='+sheetname+'!$B$1:$B$'+str(len(data)), 'name': '='+sheetname+'!$A$1:$A$'+str(len(data))}) ## insert chart into the worksheet […]

pandasread_excel同一张纸上的多个表格

是否有可能使用pandas读取表excel文件中的多个表? 如下所示:从row0读取table1,直到row100从row102读取table2,直到row202 …

如何在使用Python保存到excel时分离pd.read_html()中的多个dataframe

我试图保存通过pd.read_html()引入的多个表中的数据。 如果我打印df ,我可以看到它捕获所有的数据,但是当保存数据时,只保存第一个表格到Excel。 我怎么把表格分开,这样我就可以把每一个表格保存到excel的单独表格中(例如,表格1中的季度损益表,表格2中的年度损益表等)。 以下是我的代码。 任何帮助表示赞赏。 dfs = pd.read_html(https://www.google.com/finance?q=googl&fstype=ii, flavor='html5lib') writer = pd.ExcelWriter(output.xlsx, engine='xlsxwriter') for df in dfs: df.to_excel(writer, sheet_name='Sheet1') writer.save()

如何连接来自同一个文件的多个Excel表单?

我有一个很大的excel文件,其中包含许多不同的工作表。 所有的床单都具有相同的结构,如: Name col1 col2 col3 col4 1 1 2 4 4 3 2 1 我怎样才能连接(垂直)在Pandas所有这些表,而不必手动命名每个人? 如果这些文件,我可以使用glob来获取目录中的文件列表。 但在这里,对于Excel表格,我迷了路。 有没有办法在结果数据框中创build一个variables来标识数据来源的表名? 谢谢!

使用pandas.ExcelWriter()和engine = openpyxl保留条件格式

我试图从一个模板文件,包含条件格式的单元格范围,我将填充数据创build一堆excel文件。 我从一个excel文件创build一个数据框,其中包含了一个描述机场的一堆数据列的状态下的所有机场。 然后,我想为每个机场提供一个摘要文件,这个文件基本上是提取机场的行,并将其作为列添加到新的excel文件中,并附加一些列。 目前这一切正在工作。 但是,当我将数据框写入从模板excel文件创build的新文件时,新文件中的所有内容都被保留(其他填充的单元格仍然存在),除非条件格式不显示。 当我查看新文件中的条件格式规则时,规则在那里,但是格式部分被重置。 见下图: 模板文件格式: 在新文件中格式化(从模板复制并从数据框填充): 所以这是代码: 创build输出文件名,复制模板并用新名称保存: # ap is the single airport row extracted from the master frame (series here) ap_name = ap['Airport Name'].replace('/', '-').strip() ap_id = ap['Airport Identifier'] file_name = '{} ({}).xlsx'.format(ap_name, ap_id) output_ap_file = path.join(output_folder, file_name) shutil.copy(input_template_file, output_ap_file) # copy template and create new file 注意:如果我查看在上一步中创build的文件,格式正常工作。 我可以添加我的触发器单元格和行边框添加 清理新的机场系列,并把它作为一个数据框与其他cols: […]

python pandas read_excel返回describe()上的UnicodeDecodeError

我喜欢pandas,但是我遇到了Unicode错误的实际问题。 read_excel()返回可怕的Unicode错误: import pandas as pd df=pd.read_excel('tmp.xlsx',encoding='utf-8') df.describe() ————————————————————————— UnicodeDecodeError Traceback (most recent call last) … UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 259: ordinal not in range(128) 我发现原来的Excel在许多单元格的末尾都有(非空格),可能会避免将长数字string转换为浮点数。 解决这个问题的方法之一是去除细胞,但是一定要有更好的东西。 for col in df.columns: df[col]=df[col].str.strip() 我使用的是anaconda2.2.0 win64,pandas0.16

阅读Excel错误地parsing欧洲date(Python 3.4.3 || Pandas 0.17.0)

在下列问题中,似乎还没有答案。 从excel中读取date到Pandas Dataframe 在欧洲的机器上,pandas在使用欧洲格式(dd-mm-yyyy)从Excelsheet中parsingdate时有一个令人困惑的错误。 date编号从1到12的date将自动转换为美国标准(mm-dd-yyyy),而date编号> 12的date则以欧洲方式(dd-mm-yyyy)parsing。 这显然会导致问题。 10-05-2011 => 05-10-2011 05-10-2011 => 10-05-2011 31-05-2011 => 31-05-2011 14-12-2011 => 14-12-2011 如果“日”和“月”都小于13,总是会有一个解决scheme来处理date并切换它们,但这似乎不是它想要的工作方式。 有没有人find更好的解决scheme? 提前致谢! python:'3.4.3 | Anaconda 2.1.0(x86_64)| (默认,2015年10月20日,14:27:51)\ n [GCC 4.2.1(Apple Inc. build 5577)] pandas:“0.17.0” 编辑17 2015年11月 自己find解决方法/解决scheme:包含dayfirst = True with to_datetime() 它对我来说似乎仍然是一个错误。 我添加了我的代码的简化版本,以提供更多的上下文。 该脚本读取带有个人数据的Excel表格,并转换为创build可用于服务器上载的新表格。 input可以变化很多,但我简化了这个例子。 在代码中添加我的解决scheme,并让它做出2个date输出:一个和一个没有dayfirst = True 在两个不同的Excel表单上运行代码。 一个没有任何问题(xlsx文件,例2),另一个(xls,例1)有不同的列。 pandas似乎正确地识别日月,但难以从date创build一个string,并在ipython输出自动混合的顺序。 例如1的input列表 xls文件的最终列表,请参见名称4的问题 例如2的input列表 最终名单为xlsx文件,没有名称的问题3 […]

将复杂数字的pandas数据框导出为ex​​cel

我正在与具有复杂数字作为列数据的pandas数据框架。 我试图导出这个数据框到excel使用DataFrame.to_excel方法,抛出以下错误。 引发ValueError(“无法将{0}转换为Excel”.format(value)) ValueError:无法将(1.044574-3496.069365j)转换为Excel 有没有什么迂回的做法? 我的DataFrame看起来像这样, Freq lne_10720_15820_1-lne_10720_18229_1 lne_10720_15820_1 \ 48 (1.044574-3496.069365j) (7.576632+64.778558j) 50 (1.049333-3355.448147j) (7.557604+67.544162j) 52 (1.054253-3225.613165j) (7.656567+70.317672j)

用Python Pandas在一个excel文件中创build多个电子表格

作为标题,我需要创build多个电子表格与pandas的Excel文件。 虽然这个线程和这个都提供了解决scheme,但我觉得我的情况有些不同。 这两种情况都使用类似的东西: writer = pd.ExcelWriter('output.xlsx') DF1.to_excel(writer,'Sheet1') DF2.to_excel(writer,'Sheet2') writer.save() 然而,问题在于,我不能同时在内存中保存多个数据框,因为每个数据框都太大。 我的数据可以是这个复杂的版本: df = pd.DataFrame(dict(A=list('aabb'), B=range(4), C=range(6,10))) Out: ABC 0 a 0 6 1 a 1 7 2 b 2 8 3 b 3 9 我打算在grplist使用['a', 'b', 'c']来进行某种计算,并最终在data['A'] == a到c : data = pd.read_csv(fileloc) grplist = [['a','b','c'],['d','e','f']] for groups, numbers in zip(grplist, range(1, 5)): for category […]

pandas0.13 read_excel新格式

我前几天和pandas一起工作。 在0.12版本中,我使用pandas.read_excel(filename,sheetname,index_col)读取excel文件,读取的文件是下一个格式,头部在第一行: Date 2 3 2008-01-26 283.7 8 2008-02-26 323.1 8 2008-03-26 270.7 2 2008-04-26 353.6 2 现在,当我将一个数据框保存到excel文件中时,标题格式会发生变化,第一行是列名称,第二行是索引名称,如下表所示: 2 3 Date 2008-01-26 283.7 8 2008-02-26 323.1 8 2008-03-26 270.7 2 2008-04-26 353.6 2 最后,当我读取新的excel文件格式(使用excel_read函数)时,它将第二行读取为一个数据行,而不会将其作为索引的名称。 2 3 Date NaN NaN 2008-01-26 283.7 8 2008-02-26 323.1 8 2008-03-26 270.7 2 2008-04-26 353.6 2 是否有任何新的function,使我可以读取这种新的文件格式,考虑到第一和第二行是新的头? 谢谢。