Tag: pandas

如何使用pandas从Excel中只读取可见的工作表

我必须得到一些随机excels表,我只想从这些文件只读可见表 。 一次考虑一个文件,可以说我有Mapping_Doc.xls,其中包含两个可见的工作表和两个隐藏的工作表。 由于这里的床单较less,所以我可以用这样的名字parsing它们。 代码: xls = pd.ExcelFile('D:\\ExcelRead\\Mapping_Doc.xls') print xls.sheet_names df1 = xls.parse('Sheet1') #visible sheet df2 = xls.parse('Sheet2') #visible sheet 输出: [u'sheet1',u'sheet2',u'sheet3',u'sheet4'] 有人可以帮助我只获得可见的床单 提前致谢

Python Pandas从一张纸复制列到另一张纸而不改变任何数据?

我有一个两张工作表的Excel文件。 我想从第一张表格复制3列到第二张表格。 注意: 复制的3列标签名称与第二张表格有一些重复。 但是我应该保留第二张纸的原始数据而不改变它们 。 我已经尝试了很多方法。 我迄今为止的最佳尝试是: df_new_sheet2 = pd.concat([df_old_sheet2, df_three_of_sheet1], axis=1, join_axes=[df_old_sheet2.index]) 但是这不是理想的输出。 如果pandas不能做到这一点,你可以请build议一些其他的Python包可以工作吗? 如果我没有足够清楚地描述问题,我会上传一张照片,这可能会有所帮助。 Thx为你的答案〜 UPDATE [2017年7月24日]: 我终于find我的错! 插入一个索引号的列,然后按照b2002的分辨率,事情会变好的。 🙂

如何合并相同值的列数据并且总结其特定数据

我怎样才能合并同一个值的列数据和总结其特定的数据(在这种情况下基于DATE列) 例如: df包括: 78 79 80 DATE 8.99 7.99 6.99 201107 3.5 2.5 1.5 201107 5.48 4.48 3.48 201108 4.04 3.04 2.04 201108 5.03 4.03 3.03 201108 我想要的是: 78 79 80 DATE 12.49 10.49 8.49 201107 14.55 11.55 8.55 201108 什么是实现这个最简单的方法?

将pandas数据框写入xlsm文件(启用了macros的Excel)

使用.xlsx格式将pandas.DataFrame写入Excel工作簿非常简​​单: import pandas as pd df = pd.DataFrame({'firstColumn' : [5, 2, 0, 10, 4], 'secondColumn' : [9, 8, 21, 3, 8]}) print(df) df.to_excel('test.xlsx') 这使: firstColumn secondColumn 0 5 9 1 2 8 2 0 21 3 10 3 4 4 8 和相应的Excel文件。 是否有可能将DataFrame写入.xlsm Excel文件? 这实际上或多或less与.xlsx相同,但可以将VBAmacros存储在文件中。 我需要这个,因为我想创build文件后插入并运行VBAmacros。 但是,在常规xlsx文件上尝试此操作时,popup窗口中显示以下错误消息: The following features cannot be saved in macro-free […]

Python:在多张纸上将pandasDataFrame写入Excel的最快方法

我需要将24个pandas数据框(140列x 400行)导出到Excel中 ,每个都放到不同的工作表中。 我正在使用pandas的内置ExcelWriter 。 运行24个场景,需要: 51秒写入.xls文件(使用xlwt ) 86秒写入.xlsx文件(使用XlsxWriter ) 141秒写入.xlsm文件(使用openpyxl ) 只需运行21秒程序(不输出Excel) 写入.xls的问题是电子表格不包含格式化样式,所以如果我在Excel中打开它,select一列,然后单击“逗号”button来格式化数字,它会告诉我:'style comma not found ”。 我没有把这个问题写入一个.xlsx ,但是速度更慢。 有关如何使出口速度更快的build议? 我不能成为第一个有这个问题的人,但经过几个小时的search论坛和网站,我还没有find任何明确的解决scheme。 我唯一能想到的就是使用Python导出到csv文件,然后编写一个Excelmacros将所有CSV合并到一个电子表格中。 .xls文件是10 MB,而.xlsx 5.2 MB 谢谢!

使用Pythonpandas追加现有的Excel表格与新的数据框

我目前有这个代码。 它完美的作品。 它通过文件夹中的excel文件循环,删除前两行,然后将它们保存为单独的excel文件,并将文件作为附加文件保存在循环中。 目前,每次运行代码时,附加文件都会覆盖现有的文件。 我需要追加新的数据到已经存在的excel表单的底部('master_data.xlsx) dfList = [] path = 'C:\\Test\\TestRawFile' newpath = 'C:\\Path\\To\\New\\Folder' for fn in os.listdir(path): # Absolute file path file = os.path.join(path, fn) if os.path.isfile(file): # Import the excel file and call it xlsx_file xlsx_file = pd.ExcelFile(file) # View the excel files sheet names xlsx_file.sheet_names # Load the xlsx files Data sheet […]

将excel读入从第5行开始并包含标题的python数据框

如何将Excel数据导入python中的数据框。 基本上当前的Excel工作簿运行一些VBA开放刷新数据透视表,并做一些其他的东西。 然后我希望将数据透视表刷新的结果导入python中的数据框中以供进一步分析。 import xlrd wb = xlrd.open_workbook('C:\Users\cb\Machine_Learning\cMap_Joins.xlsm') #sheetnames print wb.sheet_names() #number of sheets print wb.nsheets 刷新和开放的文件工作正常。 但是,我如何从第一行中的第一行select数据,包括标题向下到最后一个loggingn。

如何在Python中的pandas数据框中input个人值

我来自一个很好的VBA程序ming背景,很容易input数据 (1)列中的每个单元格,(2)一行中的每个单元格,或(3)单个单元格,例如B1这可以作为数组完成,也可以直接在工作表中完成。 一个实际上是一个网格的pandas数据框是否能够将一个项目添加到特定的行和列交集? 我知道它非常好地处理数百万行的整个行或列的数据,但它可以(一个pandas数据框)有单个数据项放在里面。 想想下面的图表(列A和B作为现有的数据框,然后我想将数据项X添加到第二行中的新的第二列。 A | B | C | D | 1| a| | | | —————— 2| b| x | | | —————— 3| c| | | | —————— 5| d| | | | —————— 6| e| | | | 可以这样做吗?

Python Pandas将string转换为NaN

所以我用大pandas来阅读excel文件和csv文件。 这些文件包含string和数字不只是数字。 问题是我所有的string都被转换成了我不想要的NaN。 我不知道列的types是什么时候会提前(实际上我的工作是处理这个系统),所以我不能告诉大pandas他们将会是什么样的(后来肯定会来的)。 我只想在每个单元格中读取一个string。 这是我的代码 if csv: #check weather to read in excell file or csv frame = pandas.read_csv(io.StringIO(data)) else: frame = pandas.read_excel(io.StringIO(data)) tbl = [] print frame.dtypes for (i, col) in enumerate(frame): tmp = [col] for (j, value) in enumerate(frame[col]): tmp.append(unicode(value)) tbl.append(tmp) 我只需要能够生成列明智的二维列表,我可以做任何事情从那里。 我也需要能够处理Unicode(数据已经在Unicode)。 我如何构build'tbl',使得应该是string的单元格不会以“NaN”出现?

用pandas书写excel表格的date错误

我使用pandas.DataFrame.to_excel()函数将一些从数据库加载的文件写入Excel电子表格。 正在使用的function如下: def country_reports(countries): writer = pd.ExcelWriter('country_reports.xlsx') for country in countries: df = report(country) df.to_excel(writer, country) writer.save() report(country)方法只是返回该国家相关数据的DataFrame 。 我想为多个国家运行此报告,然后在Excel中将各个国家的数据显示在其自己的选项卡中。 这通常是非常简单的,但我有一些我的DataFrames,早于1900年的date,这使我不可能写入Excel,因为它会引发错误: ValueError:Excel不支持的年份:1861。 在将这些文件编写为CSV时,我没有任何问题,所以我很好奇,是否有一些方法可以创build一个具有多个由CSV表示的选项卡的Excel文件? 如果没有,是否有另一种解决这个问题的方法?