Tag: python

使用openpyxl创build一个字典,其中key将成为excel表格中的header_name

from openpyxl import * Variable_Model_Path=defaultdict(list) Sheet_Name=wb.get_sheet_by_name(Sheet) for row in Sheet_Name.iter_rows(): Row=[cell.value for cell in row] for cell_ind,cell in enumerate(Row): print cell 以上是我的示例代码。 我有一个Excel表格,其中包含标题var1,var2,var3。 我想创build一个字典{Var1:1,4,7,10},其中Var1将是头名称,值将是相应的列值。 我正在使用openpyxl module.Herevariables的名称和值将由用户给出,他们将是dynamic的。 Var1 Var2 Var3 1 2 3 4 5 6 7 8 9 10 11 12

如何使用Python将XML文件导入Excel XLS文件模板?

我有一个Excel模板文件,它具有在XML中定义的列。 手动我可以右键单击模板,然后selectXML>导入,然后selectXML文件,最后保存文件。 我怎样才能在Python中自动编程呢 ? XML文件示例: <DCPowerFlow> <branches> <branch> <busFrom name="bus_one" number="1" /> <busTo name="bus_two" number="2" /> <id>1</id> <rateA>1000</rateA> <resultPowerFlow> <probOverFlow>0.0</probOverFlow> <maxOverFlow>800</maxOverFlow> </resultPowerFlow> </branch> <branch> <busFrom name="bus_two" number="2" /> <busTo name="bus_three" number="3" /> <id>1</id> <rateA>1200</rateA> <resultPowerFlow> <probOverFlow>0.1</probOverFlow> <maxOverFlow>1300</maxOverFlow> </resultPowerFlow> </branch> </branches> </DCPowerFlow> 要检查手动任务: 将上面的例子保存为一个XML文件。 为了创buildExcel XLS模板,您可以简单地使用Excel打开上面的XML示例,确保模板上没有数据(如果在导入中添加了任何数据,则删除数据)并将文件另存为XLS。 导入示例XML文件。 右键单击创build的Excel模板文件,然后selectXML>导入,然后selectXML示例文件。 将数据保存为新的XLS。 所以我需要做的是自动步骤3和4 。

使用Python2.7的数据在Excel中创build一个表

我正试图将我的数据导出到Excel文件。 我的问题是,我的数据来自itertools.combination,我不知道如何将所有的组合和他们的数据导出到Excel文件 我的子集来自一个input文件,看起来像 carbon_1 xcoordinate ycoordinate zcoordinate 对于n个碳 作为参考,我的代码是 subset = cmd[['carbon','x_coord', 'y_coord','z_coord']] coordinate_values = [tuple(x) for x in subset.values] atoms = coordinate_values atomPairs = itertools.combinations(atoms, 2) atoms_dict = {k:"carbon_{}".format(i) for i,k in enumerate(atoms,1)} print("Computing distance between {} and {}".format(atoms_dict[pair[0]],atoms_dict[pair[1]])) 然后,我有一个简单的定义来计算距离,d和我的代码是结束 if d >= 1.4 and d < 1.6: bond = 1 elif d >= […]

比较2个独立DataFrame中的数据,并在Python / Pandas中生成结果

我是Python的新手,我试图用Python和Pandas产生Excel的IndexMatch函数类似的结果,尽pipe我正在努力使它工作。 基本上,我有2个独立的dataframe: 第一个数据框(“市场”)有7列,但我只需要这些练习(“符号”,“date”,“closures”)的列中的3。 这个DF有13948340行。 第二个DataFrame('transactions')有14列,但我只需要其中的2列('i_symbol','acceptance_date')。 这个DF有1,428,026行。 我的逻辑是:如果i_symbol等于符号,并且acceptance_date等于date:打印符号,date和closures。 这应该很容易。 我用iterrows()实现了它,但由于数据集的大小,它每3分钟返回一个结果 – 这意味着我将不得不运行脚本1,190小时以获得最终结果。 根据我在网上阅读的内容,itertuples应该是一个更快的方法,但我目前得到一个错误: ValueError:解压缩的值太多(预计2) 这是我写的代码(目前产生上面的ValueError): for i_symbol, acceptance_date in transactions.itertuples(index=False): for symbol, date in market.itertuples(index=False): if i_symbol == symbol and acceptance_date == date: print(market.symbol + market.date + market.close) 2个问题: itertuples()是最好还是最快的方法? 如果是这样,我怎么能得到上述的工作? 有谁知道更好的方法? 索引工作? 我应该使用外部数据库(例如MySQL)吗? 谢谢,Matt

使用python从电子表格提取多个表格

我想提取一系列excel电子表格中的多个表格,其中一些表格可能包含多个表格,将表格单独存储为例如csv文件。 表格可能是这样的: 如果我使用pandas read_excel读取它 import pandas as pd pd.read_excel('table_example.xlsx',header=None) 我会得到这样的东西: 我怎么能提取不同的表格? 在我的情况表中有NaN值,这可能是一个额外的复杂性。 [EDIT1]类似于Excel表的东西可以使用pandas生成: df=pd.DataFrame(np.nan,index=range(0,10),columns=range(0,10)) df.iloc[1,2:5]=['t1h1','t1h2','t1h3'] df.iloc[2:5,2:5]=np.random.randn(3,3) df.iloc[6,3:7]=['t2h1','t2h2','t2h3','t2h4'] df.iloc[7:9,3:7]=np.random.randn(2,4) 我试图用内置的pandasfunctionfind表格的限制: df[df.isnull().all(axis=1)] 我可以使用第一和第二行来设置水平分割 ,也许做一个第一次拆分,但我不知道如何select上面或下面的标识行的单元格。 或者即使这是最方便的方法。 免责声明:在我的情况下,表格总是在标题上方的行中有一个标签,这是因为这些表格是由一个非python软件读取的,它使用它来标识表格的起始位置。 我决定不考虑这些标签问一个更通用的问题,其他人可能会遇到。

在文件被“打开文件”菜单select并加载之后,如何将Excel单元格值加载到tkinter GUI中的空文本框中?

我用tkinter构build了一个GUI。 有两个button,一个用于加载Excel表格并parsing所有单元格并打印它们的值。 另外,我有一系列带有标题的空文本框。 我想要实现的是将parsing的Excel单元格加载到variables上,然后用单元格值(即所讨论的variables)填充空的文本框。 任何指针将不胜感激。 这是我的代码到目前为止: #!/usr/bin/python3 from tkinter import filedialog from tkinter import * import openpyxl from openpyxl import load_workbook #Define Window Geometry main = Tk() main.geometry("1024×768") main.title("Window Title") #Define Empty Cells to be Filled in by Excel File & Calculation def OpenDataInputSpreadsheetCallBack(): main.iconify() file_path = filedialog.askopenfilename(initialdir = "file_path_goes_here",title = "Choose Input Spreadsheet",filetypes = […]

Python在Excel中格式化csv文件

我正在为一个项目编写一些代码并将此代码保存为.csv格式。 然后在excel中打开进一步检查数据。 有8个花车,然后每行1个string。 如何获得excel来显示不同单元格中的每个值? 保存的代码 def save_array(): t = utctime.t() temp = data.get_data() atime = np.append([temp],[t]) atime = ' '.join(atime) return atime with open( path2, 'w') as save_data: save_data_write = csv.writer(save_data, delimiter = ' ' , dialect = 'excel') save_data_write.writerow([save_array()]) save_data.close() while i: time.sleep(1) with open( path2,'a') as save_data: save_data_append = csv.writer(save_data, delimiter = ' […]

将Excel公式转换为python

我有一个这个公式的电子表格。 我能够理解条件检查部分,($ R7 / $ O7)的计算和条件不满足时的默认值。 (1 +($ U7:Z7))) – 1? {=IF($T7>=AA$5,($R7/$O7)/(PRODUCT(1+($U7:Z7)))-1,"")} 另外,为什么我们有{}? 如果我手动在某个单元格中input公式,它不起作用。 我想把这个公式转换成python。 这是我有的代码: df.loc[(df['T'] >= df['AA']), 'x'] = (df['R']/df['O'])/PRODUCT()-1 我的问题是如何计算此计算的PRODUCT部分?

我正在尝试为CSV文件的每一列创build一个数组,

我有一个excel文件,我已经导出为CSV。 它看起来像这样: "First Name","Last Name","First Name","Last Name","Address","City","State" "Bob","Robertson","Roberta","Robertson","123 South Street","Salt Lake City","UT" "Leo","Smart","Carter","Smart","827 Cherry Street","Macon","GA" "Mats","Lindgren","Lucas","Lindgren","237 strawberry xing","houston","tx" 我有一个名为“类别”,有一个名称variables的类。 我的代码为每个第一行string做了一个类别,但现在我需要将每个项目添加到它应该进入的列。 import xlutils from difflib import SequenceMatcher from address import AddressParser, Address from nameparser import HumanName import xlrd import csv class Category: name = "" contents = [] index = 0 columns = [] alltext = […]

如何从pandas数据透视表中删除重复的值?

所以我想重现一组excel的指令到python中。 问题是我对excel知之甚less,发生了什么。 我有一个数据框架: no. name corrected no. corrected name 001 alpha 001 alpha 002 beta 002 beta 002 beta2 002 beta 003 gamma 003 gamma 004 delta 104 delta 003 omega 003 gamma … … … … 在excel中,说明会在“ROWS”部分创build一个包含所有列的数据透视表。 我已经在pandas中用'groupby'和'pivot_table'做了这个 df.groupby(['no.', 'name', 'corrected name'])[['corrected no.']].mean() or pd.pivot_table(df[['no.', 'name', 'corrected name', 'corrected no.']], index=['no.', 'name']) 这看起来像: no. […]