Tag: pandas

如何在重复索引值的pandas数据框df.loc单元格?

所以我有一个大pandas数据框(Excel),看起来像这样: Teams Season Points Team A 1 5 Team B 1 6 Team C 1 4 Team D 1 5 Team A 2 7 Team B 2 8 Team C 2 3 Team D 2 2 你可以看到所有的团队在索引中重复。 我的问题是,有没有一种方法可以“定位”到本表中的特定单元格上 如果我要做df.loc [“团队A”,“积分”],则打印两个团队的值。 有没有一种方法可以指定AI队想要使用的赛季(第1季还是第2季)?

如何findExcel行的加权协方差matrix?

我对python很新,实际上这是我在Python中的第一个代码。 我试图find4行数据的协方差matrix,每个元素的date递减权重 我需要计算4乘4协方差matrix我必须使用python在哪里我已经计算了回报和权重find协方差matrix。 import pandas as pd import numpy as np import math xl = pd.ExcelFile('path+file.xlsx') df = xl.parse('Sheet 1') df['spxr']=np.log(df.SPX/df.SPX.shift(-1)) df['djir']=np.log(df.DJI/df.DJI.shift(-1)) df['vixr']=np.log(df.VIX/df.VIX.shift(-1)) df['vxdr']=np.log(df.VXD/df.VXD.shift(-1)) df['weights']=(0.06)*(0.94**(df.Obs-1)) df=df.fillna(0) 我不知道如何使用np.cov

从列或字段创build多个工作簿

在我读了我想要的文件后 df = pd.read_sas('test.sas7bdat') 说我有一个列或字段在表中名为: [Peoples_Names] 并且我想要为每一个人在这个专栏中的名字做一个excel文档。 是他们的一种方式来做到这一点,而无需手动通过手动为每一个脚本做一个脚本。 我希望程序基本上能够在这个专栏中为每个人打出多个excel工作簿。

如何在Python中将n行xlsx转换为csv,同时保留date值

我试图将xlsx文件转换为一个CSV文件,其中包含标题和另一个包含实际数据的CSV文件。 我有以下要求: 标题不是从第一行开始,而是在start_line行。 date不应该被视为浮动,但在一些string格式。 事先不知道文件的行数或列数。 我也不想指定哪一列是date。 使用pandas我卡在1号。我想在两个单独的读取,我从start_line读start_line+1和从start_line+1到结束读取。 但是,似乎不可能从偏移量中读取n行。 下面是我用来获取一个包含头文件的代码。 import pandas as pd def parse_excel(file,start_line,sheet,table): sh = pd.read_excel(file,sheet,skiprows=start_line) sh.to_csv("output.csv",sep='\t',encoding='utf-8',index=False) 接下来,我已经尝试使用xlrd但是这个库将所有date视为像在Excel中的浮动。 唯一的解决方法似乎是通过所有单独的单元格 ,这似乎不是很有效或编码不好。 我现在拥有的: import xlrd def parse_excel(file,start_line,sheet,table): with xlrd.open_workbook(file) as wb: sh = wb.sheet_by_name(sheet) header_written = False with open('{0}.csv'.format(table),'wb') as csv_file: wr = csv.writer(csv_file,delimiter='\t') for rownum in range(sh.nrows): if not header_written and start_line == rownum: […]

比较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软件读取的,它使用它来标识表格的起始位置。 我决定不考虑这些标签问一个更通用的问题,其他人可能会遇到。

将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部分?

如何从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. […]

pandas0.19.2 read_excel IndexError:列表索引超出范围

我正在寻找parsing一个Excel电子表格。 我决定使用pandas,但直接从蝙蝠的错误。 我从下面的代码开始,但使用完整的path,并尝试设置工作表名称。 import pandas as pd table = pd.read_excel('ss_12.xlsx') if __name__ == '__main__': pass Excel电子表格和我的脚本文件在同一个目录下。 我教它会像open()一样工作,如果它在同一个目录中,只需要一个名字。 我已经在网上看了几个例子,并由他们去这应该工作。 我正在尝试去掉上图中的第一列。 完整的错误(不知道如何格式化,对不起) C:\xx\Playpen\ConfigList_V1_0.xlsx Traceback (most recent call last): File "C:\xx\Playpen\getConVars.py", line 12, in <module> pd.read_excel(excelFile) File "C:\xx\Programs\Python\Python35\lib\site-packages\pandas\io\excel.py", line 200, in read_excel **kwds) File "C:\xx\Programs\Python\Python35\lib\site-packages\pandas\io\excel.py", line 432, in _parse_excel sheet = self.book.sheet_by_index(asheetname) File "C:\xx\Programs\Python\Python35\lib\site-packages\xlrd\book.py", line 432, in sheet_by_index […]

如何从variables资源pipe理器(Spyder python 3.5)复制variables到剪贴板

基本上我想复制multidimensional array到EXCEL表。 如果这是不可能的,至less我应该能够从variables资源pipe理器在Spyder中导出LIST。 我试过了 ` import xlsxwriter workbook = xlsxwriter.Workbook('arrays.xlsx') worksheet = workbook.add_worksheet() array = [['a1', 'a2', 'a3'], ['a4', 'a5', 'a6'], ['a7', 'a8', 'a9'], ['a10', 'a11', 'a12', 'a13', 'a14']] row = 0 for col, data in enumerate(data): worksheet.write_column(row, col, data) workbook.close() `但是,我不能复制存储为数据的string数据。