Python 将一个数据框保存到同一Excel中的多个工作表

Python 将一个数据框保存到同一Excel中的多个工作表,python,dataframe,export-to-excel,Python,Dataframe,Export To Excel,有一个数据框,并且基于该数据框的子标题,希望保存到同一csv文件中的不同图纸 试过的作家 from bs4 import BeautifulSoup as soup import urllib.request import pandas as pd import pandas_datareader as pdr from pandas import ExcelWriter list = ['MDB', 'SQ', 'GOOS', 'NVDA', 'AMZN', 'ENPH', 'TEAM',

有一个数据框,并且基于该数据框的子标题,希望保存到同一csv文件中的不同图纸

试过的作家

from bs4 import BeautifulSoup as soup
import urllib.request
import pandas as pd
import pandas_datareader as pdr
from pandas import ExcelWriter

list = ['MDB', 'SQ', 'GOOS', 'NVDA', 'AMZN', 'ENPH', 'TEAM', 'TWLO', 'ZM']
#print (list[1])
#xls_path = '/Users/tony/documents/Python_Projects/stock_prices.csv'

writer = pd.ExcelWriter("test_prices.csv", engine='xlsxwriter')


for item in list:
    print (item)

for item in list:
#     earnings = pd.read_html('https://finance.yahoo.com/calendar/earnings?day=2019-06-13&symbol=' + str(item))[0]
#     latest_earnings = earnings[:4]
#     print (latest_earnings)
    print ('\n This is the price for:' + str(item) + '\n')    
    prices = pdr.get_data_yahoo(item)[-30:]
#     writer = prices.ExcelWriter("stock_prices.xlsx", engine='xlsxwriter')

#         def save_xls(xls_path):
#             with ExcelWriter(xls_path) as writer:
#                 for n, df in enumerate(list_dfs):
#                     df.to_excel(writer,'sheet%s' % n)

#         writer.save()

#     writer = ExcelWriter(xls_path)
# #         for n, df in enumerate(df_list):
#     df.to_excel(writer, item)

    print (prices)

#     names = df['name'].unique().tolist()

# writer = pandas.ExcelWriter("MyData.xlsx", engine='xlsxwriter')

# for myname in names:
#     mydf = df.loc[df.name==myname]
    prices.to_excel(writer, item)

writer.save()
回溯:

ValueError                                Traceback (most recent call last)
<ipython-input-20-f407b2c5f3fe> in <module>()
      9 #xls_path = '/Users/tony/documents/Python_Projects/stock_prices.csv'
     10 
---> 11 writer = pd.ExcelWriter("test_prices.csv", engine='xlsxwriter')
     12 
     13
ValueError回溯(最近一次调用)
在()
9#xls_path='/Users/tony/documents/Python_Projects/stock_prices.csv'
10
--->11 writer=pd.ExcelWriter(“test_prices.csv”,engine='xlsxwriter')
12
13

假设
pdr.get\u data\u yahoo(item)[-30:]
返回一个数据帧,这应该将从不同的
获得的每个数据帧保存到另一张名为
output.xlsx
文件中的项的表中

list = ['MDB', 'SQ', 'GOOS', 'NVDA', 'AMZN', 'ENPH', 'TEAM', 'TWLO', 'ZM']   
with pd.ExcelWriter('output.xlsx') as writer:  
    for item in list:
        prices = pdr.get_data_yahoo(item)[-30:]
        prices.to_excel(writer, item)

因此,您需要将其输出到.xlsx文件中:

from bs4 import BeautifulSoup as soup
import urllib.request
import pandas as pd
import pandas_datareader as pdr
from pandas import ExcelWriter

list = ['MDB', 'SQ', 'GOOS', 'NVDA', 'AMZN', 'ENPH', 'TEAM', 'TWLO', 'ZM']
# print (list[1])
# xls_path = '/Users/tony/documents/Python_Projects/stock_prices.csv'

writer = pd.ExcelWriter("test_prices.xlsx", engine='xlsxwriter')

for item in list:
    print(item)

for item in list:
    print('\n This is the price for:' + str(item) + '\n')
    prices = pdr.get_data_yahoo(item)[-30:]

    prices.to_excel(writer, sheet_name=item)

writer.save()

问题可能是您正在写入.csv文件。尝试将“test_prices.csv”更改为“test_prices.xlsx”。Excel不允许在csv文件中包含多张工作表。此外,请检查此资源,以使用pd编写多张工作表。ExcelWriter:请参阅下面的答案,使用pandas将多张工作表保存在Excel文件中是完全可能的。