Tag: pandas

我如何使这个函数连接来自单个文件的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 – […]

Python,Pandas将Excel文件合并为1,文件名称为A列

我将Excel电子表格合并到1个电子表格中,并且要在电子表格的第一列合并时插入电子表格的文件名。 要组合的Excel文件是:20170801.xlsx,20170901.xlsx,20171001.xlsx 这是我有的代码: working_folder = 'c:\\abc\\' files = os.listdir(working_folder) files_xls = []; for f in files: if f.endswith(".xlsx"): fff = working_folder + f files_xls.append(fff) df = pd.DataFrame(); for f in files_xls: data = pd.read_excel(f, skip_footer=0) file_date = basename(f).replace(".xlsx", "") #data.index = pd.MultiIndex.from_tuples([("", file_date)] * len(data)) data.index = pd.MultiIndex.from_tuples([(file_date)] * len(data)) df = df.append(data) df.to_excel(working_folder + […]

Spreadsheet Manipulation Tricks w / Python's Pandas

我给自己一个使用Python和pandas进行数据处理的速成课程。 我终于厌倦了使用电子表格,并想要比R更灵活的东西,所以我决定给它一个旋转。 这是一个非常漂亮的界面,我正在玩它。 然而,在研究不同的技巧时,我一直无法find基本的电子表格函数的备忘单,尤其是关于将公式添加到引用其他列的数据框中的新列的问题。 我想知道是否有人可能会给我推荐的代码来完成下面的6个标准电子表格操作,只是为了让我更好地了解它是如何工作的。 如果您希望看到全尺寸的图像渲染, 请点击这里 如果您想自己查看电子表格, 请点击此处 。 我已经有点熟悉向数据框添加列,主要是我正在努力的特定单元格的交叉引用。 基本上,我期待的答案松散地看起来像这样: table['NewColumn']=(table['given_column']+magic-code-that-I-don't-know).astype(float-or-int-or-whatever) 如果我能很好地使用额外的库来完成这些function,请随时提出build议。 提前谢谢了。

将数据框写入指定path的excel文件

I have a dataframe df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]}) This is working : writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter') df.to_excel(writer, sheet_name='Sheet1') writer.save() but when I try out_path = "C:\Users\Bala\output\temp-excel.xlsx" writer = pd.ExcelWriter(out_path , engine='xlsxwriter') df.to_excel(writer, sheet_name='Sheet1') writer.save() 我得到错误:IOError:[Errno 22] invalid mode('wb')or filename:'C:\ Users \ Bala Nadella \ output \ temp-excel.xlsx'。 如何在给定的path中创build文件。

使用pandas来提取我需要的数据

我有一个xlsx文件,看起来像这样; Name 01/09/16 02/09/16 03/09/16 Jack In Out In Lisa Out In Out Tom Out In In 我试图使用pandas来打印这些数据,如下所示: +———————————-+————-+————-+————-+ | Status | 01/09/16 | 02/09/16 | 03/09/16 | +———————————-+————-+————-+————-+ | In | Jack Tom Tom | Lisa | Jack | +———————————-+————-+————-+————-+ | Out | Lisa Tom | Jack | Lisa | +———————————-+————-+————-+————-+ 我正在努力find一种方法来做到这一点pandas。 我想问一下,是否有任何简单的方法迭代date列,匹配到一行,并获得单元格值? 例如,让我们拿第一列01/09/16,我怎样才能使用pandas下来的列,并find单元格值“In”,匹配与行名称“杰克”,然后将其添加到像嵌套字典这个; […]

如何使用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时,如何将前导零保留在列中?

我正在试图导出一个数据框与前导零像这样的列: df["CD_LIN_NEG"] 0 001 1 001 2 004 3 001 4 001 5 001 6 003 7 006 Name: CD_LIN_NEG, dtype: object 但是,当我导出到CSV,当我在Excel中打开文件时,所有的前导零被切断任何数字。 我怎样才能保持零? 我试图转换为string,但它不工作: df["CD_LIN_NEG"] = df['T_PROD_CP.LN'].astype(str).apply(lambda x: x.zfill(3)) 或者以这种方式: df["CD_LIN_NEG"] = '00' + df['T_PROD_CP.LN'].astype(str)

在Pandas中parsing多索引Excel文件

我有一个三级列MultiIndex的时间序列Excel文件,我想成功parsing如果可能的话。 有一些关于如何做到这一点的堆栈溢出索引,但不是列和parse函数有一个header似乎没有行列表。 ExcelFile的外观如下所示: A列是从A4开始的所有时间序列date 列B具有top_level1(B1)mid_level1(B2)low_level1(B3)数据(B4-B100 +) 列C具有空(C1)空(C2)低级2(C3)数据(C4-C100 +) D列有空(D1)mid_level2(D2)low_level1(D3)数据(D4-D100 +) 列E具有空(E1)空(E2)low_level2(E3)数据(E4-E100 +) … 因此,有两个low_level值,许多mid_level值和一些top_level值,但技巧是顶级和中级的值为空,并假定为左侧的值。 因此,例如,上面的所有列都将top_level1作为顶级多索引值。 到目前为止,我的最好的想法是使用transpose ,但它填补了Unnamed: #无处不在,似乎没有工作。 在pandas0.13 read_csv似乎有一个header参数,可以采取一个列表,但这似乎并没有parse 。

pandas将Excel文件中的空行合并到数据框中的单行

我有不同的Excel文件,我正在处理大pandas。 我需要从每个文件的顶部删除一定数量的行。 这些额外的行可以是空的,也可以包含文本。 pandas组合了一些行,所以我不知道有多less需要删除。 例如: 这里是一个示例excel文件(表示为csv): ,, ,, some text,, ,, ,, ,, name, date, task Jason,1-Jan,swim Aem,2-Jan,workout 这是我目前的Python脚本: import pandas as pd xl = pd.ExcelFile('extra_rows.xlsx') dfs = xl.parse(xl.sheet_names[0]) print ("dfs: ", dfs) 这是打印数据框时的结果: dfs: Unnamed: 0 Unnamed: 1 Unnamed: 2 0 some other text NaN NaN 1 NaN NaN NaN 2 NaN NaN NaN […]