簡體   English   中英

使用python將數據框覆蓋為已經存在的excel文件

[英]Overwrite data frame to already exists excel file using python

我被困在一個查詢中,請從中退出。

查詢:我有一個函數,每1分鍾運行一次,它輸出一個數據幀。 我想每分鍾后將此數據幀轉換為excel .xlsx文件。 換句話說,我想更新或重寫該Excel文件。

定義BANK_NIFTY_LIVE_DATA():

import threading

import numpy as np
import pandas as pd
import requests
from bs4 import BeautifulSoup 

writer = pd.ExcelWriter('try_try_try.xlsx')

Base_url = "https://www.nseindia.com/live_market/dynaContent/live_watch/option_chain/optionKeys.jsp?symbolCode=-9999&symbol=BANKNIFTY&symbol=BANKNIFTY&instrument=OPTIDX&date=-&segmentLink=17&segmentLink=17"
page = requests.get(Base_url)
soup = BeautifulSoup(page.content, "lxml")
stock_table=soup.find_all('table', id = 'octable')

stock_table=stock_table[0]

list=[]
for row in stock_table.find_all('tr'):
    for cell in row.find_all('td'):
        list.append(cell.text)

final_list = [l.replace('\t','').replace('\n','').replace('\r','').replace(',','').replace(' ','') for l in list]

while("" in final_list):
    final_list.remove("")


del final_list[924:]

f_final_list=[]
for i in final_list:
    if i=='-':
        f_final_list.append(i)

    else:
        f_final_list.append(float(i))

new_list = [f_final_list[i:i+21] for i in range(0, len(f_final_list), 21)]

df=pd.DataFrame.from_dict(new_list)
colnames=['CALLS OI','CALLS CHNG IN OI','CALLS VOLUME','CALLS IV','CALLS LTP','CALLS NET CHNG','CALLS BID QTY','CALLS BID PRICE','CALLS ASK PRICE','CALLS ASK QTY','STRIKE PRICE','PUTS BID QTY','PUTS BID PRICE','PUTS ASK PRICE','PUTS ASK QTY','PUTS NET CHNG','PUTS LTP','PUTS IV','PUTS VOLUME','PUTS CHNG IN OI','PUTS OI']
df.columns=colnames

df.to_excel(writer, sheet_name="sheet1")
writer.save()
writer.close()
print("working good")


timer=threading.Timer(20.0,BANK_NIFTY_LIVE_DATA)
timer.start()

鑒於您要問的是:

import pandas as pd
def output(df1):
    df1.to_excel("d:\\output.xlsx")
def fun(i):
    df1 = pd.DataFrame([[i, 'b'], [i, 'd']],index=['row 1', 'row 2'],columns=['col 1', 'col 2'])
    output(df1)
for i in range(4):
    fun(i)

輸出將是:

        col 1    col 2
row 1    3        b
row 2    3        d

文件被覆蓋。

使用.to_excel

它是將df保存為excel格式的簡單功能。

例如檢查:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_excel.html

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM