Python 索引数据帧值,直到达到值/字符串

Python 索引数据帧值,直到达到值/字符串,python,excel,oracle,Python,Excel,Oracle,我有一个Excel电子表格,我想将其中的基本数据导出到我的Oracle表中 但是Excel工作表在某些单元格中有额外的不必要数据。它也会在中间分割,表示可用鱼和所需鱼之间的差异。我需要捕捉这种差异 所以我的目标是导出所有数据,但在我的Oracle数据库中,我需要区分提供的鱼和需要的鱼。那么,有没有一种方法可以对这些列进行索引,直到索引达到购买配额为止?因此,允许我在我的ask列中导出带有1的第一个块,并在我的bid列中导出带有1的第二个块 下面是我迄今为止尝试过的代码,以及Excel表的图片。谢

我有一个Excel电子表格,我想将其中的基本数据导出到我的Oracle表中

但是Excel工作表在某些单元格中有额外的不必要数据。它也会在中间分割,表示可用鱼和所需鱼之间的差异。我需要捕捉这种差异

所以我的目标是导出所有数据,但在我的Oracle数据库中,我需要区分提供的鱼和需要的鱼。那么,有没有一种方法可以对这些列进行索引,直到索引达到购买配额为止?因此,允许我在我的
ask
列中导出带有
1
的第一个块,并在我的
bid
列中导出带有
1
的第二个块

下面是我迄今为止尝试过的代码,以及Excel表的图片。谢谢你的帮助

导入操作系统
将numpy作为np导入
作为pd进口熊猫
导入cx_Oracle
进口稀土
从dateutil导入解析器
dsnStr=cx_Oracle.makedsn(“sole.noaa.gov”、“1526”、“sole”)
con=cx\u Oracle.connect(user=“user”,password=“passswill”,dsn=dsnStr)
路径='Z:\\excel\u文件\u到\u转换'
#模式=重新编译(r'Sent:(.+?)(?=
)) 对于os.listdir(路径)中的文件名: file_path=os.path.join(路径,文件名) 如果os.path.isfile(文件路径): df=pd.read\u excel(文件路径) 打印(“df为:”,df) 打印(“我认为第1列:”,df[:所需库存]) 打印(“第1行:”,df.loc[0]) 打印(“第2行:”,df.loc[1]) 打印(“第3行:”,df.loc[2]) 打印(“第4行:”,df.loc[3]) 打印(“第5行:”,df.loc[4]) #解析(df,fuzzy=True) #印刷品(d) #df['DATE']=pd.to_datetime(df['DATE'])#将日期列转换为日期时间 #latest_date=df['date'].max()#查找最新的日期时间 #latest_rows=df[df['DATE']==latest_DATE]#使用索引筛选只选择与latest DATE相等的列 #打印(“最新的行是:”,最新的行) cursor=con.cursor() 导出的_数据=[df.values中x的元组(x)] sql查询=(“插入到粗糙表中(物种、发布日期、股票id、英镑、货币、部门、ask)”“值(:3,:1,:2,:4,:5,'可持续收获部门','1')) #sql\u查询=(“插入数据库(物种、交易日期、交易id、英镑、广告价格、电子邮件年、电子邮件月、电子邮件日、部门、ask)”值(:3,:1,:2,:4,:5,:6,:7,:8,'可持续收获部门','1')) cursor.executemany(sql查询、导出的数据) con.commit()#提交到数据库 cursor.close() con.close()
除非您需要重复执行此操作,否则不需要使用其他语言

将其粘贴到单元格
F4
,并将其复制到要插入第一个块中的所有行

="INSERT INTO ROUGHTABLE(date_posted, stock_id, species, pounds, money, sector, ask) VALUES ( DATE '"&YEAR(A4)&"-"&MONTH(A4)&"-"&DAY(A4)&"', "&B4&", '"&C4&"', '"&D4&"', "&E4&", 'Sustainable Harvest Sector', '1' );"
将生成的SQL语句复制并粘贴到脚本中,然后在SQL/Plus中运行它


然后,您可以编辑第二个数据块的公式,并根据需要重复该过程。

我确实需要重复此过程……这是否意味着这段SQL代码在其他Excel工作表上不起作用?如果格式相同,您可以将其复制并粘贴到多个电子表格中。只需编辑需要编辑的部分(如
扇区
询问
/
投标
列),使其适合每张图纸。如果你只需要几张纸,那么它就可以工作,但是如果你需要几百张纸或者每周都这样做,那么花时间编写一个程序化的解决方案可能是值得的,就像你开始写的那样。嗯,好的。我必须做大约120次,然后一周一次。所以我想理想的情况是我想让程序来做。老实说,大多数电子表格都没有可用的
和所需的
这两个部分,所以我可能会手工输入这一部分。但我现在遇到的问题是,我需要在第一个单元格中始终紧跟在
列表
之后的日期,所以我想我会使用RegEx,但我对RegEx不太熟悉,所以这需要一些时间。然后,我需要处理捕获所有基本数据的问题,但要去掉前两个标题单元格
="INSERT INTO ROUGHTABLE(date_posted, stock_id, species, pounds, money, sector, ask) VALUES ( DATE '"&YEAR(A4)&"-"&MONTH(A4)&"-"&DAY(A4)&"', "&B4&", '"&C4&"', '"&D4&"', "&E4&", 'Sustainable Harvest Sector', '1' );"