Python 将一个数据框保存到同一Excel中的多个工作表
有一个数据框,并且基于该数据框的子标题,希望保存到同一csv文件中的不同图纸 试过的作家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',
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文件中是完全可能的。