这是我的代码,一切都工作得很好,直到我尝试并发送到Excel。我有一个脚本,适用于一个网页,但不是多页。
import pandas as pd
from pandas import ExcelWriter
dfs = pd.read_html('https://www.teamrankings.com/nfl/stat/yards-per-play/',header=0)
for df in dfs:
print(df)
writer = pd.ExcelWriter('nfl.xlsx')
df.to_excel('nflypp.xlsx', sheet_name='yppo', index=False, engine='xlsxwriter')
writer.save()
import pandas as pd
from pandas import ExcelWriter
oyyp_df = pd.read_html('https://www.teamrankings.com/nfl/stat/yards-per-play.html',header=0)
dyyp_df = pd.read_html('https://www.teamrankings.com/nfl/stat/opponent-yards-per-play',header=0)
for df in (oyyp_df, dyyp_df):
print(df)
writer = pd.ExcelWriter('nfl.xlsx')
df.to_excel('nflypp.xlsx', sheet_name='yppo', index=False, engine='xlsxwriter')
df.to_excel('nflypp.xlsx', sheet_name='yppd', index=False, engine='xlsxwriter')
writer.save()
error: AttributeError: 'list' object has no attribute 'to_excel'
C:\cabs\projects>nflstatsypp.py
[排名团队2018最后3最后1个主场2017
0 1堪萨斯城7.0 7.0 6.9 6.4 7.5 6.9 6.1
1 2 LA充电器6.8 6.4 6.2 6.4 7.0 6.4 6.8 5.8
3 4坦帕湾6.2 6.0 3.6 6.7 6.7 5.7 6.3
5 5新奥尔良6.2 6.0 5.3 6.2 6.2 5.8
6 7卡罗莱纳6.2 7.3 6.8 6.1 6.2 5.1
7 8亚特兰大6.0 5.0 2.9 6.5 5.5 5.8
8绿湾6.0 5.4 4.4 5.4 5.4 9 6.1 4.9
9 10丹佛5.9 6.1 6.3 6.1 5.8 4.8
10 11新英格兰5.9 6.2 6.6 6.2 5.5 6.0
11 12纽约巨人5.8 6.2 5.0 5.4 6.1 4.9
12 13休斯顿5.7 6.0 5.2 6.2 5.2 5.3 5.0
13 14西雅图5.7 6.2 6.8 5.8 5.9 5.9 5.2
14 15旧金山5.7 5.8 6.1 5.4 5.9 5.3
15 16印第安纳波利斯5.7 5.7 3.7 5.7 5.2 5.1 4.6
16 17辛辛那提5.6 5.1 4.8 5.5 5.7 4.7 4.8
17 18明尼苏达5.6 5.1 4.8 5.6 5.7 4.8
17 18明尼苏达5.6 5.1 2 5.0 5.4
19 20费城5.5 5.4 6.1 5.5 5.5 5.6
2021芝加哥5.5 4.6 4.9 6.0 5.0 4.9
21 22克利夫兰5.4 7.3 8.2 5.1 5.8 5.0 5.8 5.8 5.8 4.9 4.9
23 24迈阿密5.4 4.7 3.5 5.6 5.1 5.3 5.1 5.3 5.1 5.3 5.2 5.6
26 27巴尔的摩5.3 5.0 4.8 5.3 5.2 4.6
27 28华盛顿5.2 4.8 5.6 5.0 5.4 5.3
28 29杰克逊维尔5.0 4.3 3.8 5.0 5.4 5.3
28 29杰克逊维尔5.0 4.3 3.8 5.0 5.4 5.3
29 30纽约喷气机4.9 4.5 4.3 5.4 5.4
29 4.4 5.0
30 31水牛4.5 6.2 6.3 4.5 4.6 4.7
3132亚利桑那州4.4 4.8 5.5 4.5 4.2 4.7]
[Rank Team 2018最后3最后1主场2017
0 1巴尔的摩4.6 4.1 2.9 4.5 4.8 5.0
1 2水牛城4.9 4.2 3.5 5.1 4.7 5.3
2 3芝加哥4.9 4.8 5.0 4.6 5.6 5.6 5.6 5.1
5 5达拉斯5.3 5.2 3.6 4.6 5.6 4.8
6 7亚利桑那州5.3 5.1 4.4 5.0 5.6 4.9
7 8杰克逊维尔5.3 5.6 7.5 4.3 6.2 4.8
8 9休斯顿5.4 6.1 8.2 5.9 4.9 5.7
9 10田纳西5.4 5.1 3.8 5.0 5.7 5.1
10 11洛杉矶充电器5.5 5.1 5.3 5.7 5.4 5.3
11 12印第安纳波利斯5.5 4.8 3.9 5.6 5.4 5.7
12 13绿湾5.5 5.7 5.5 5.2 5.8 5.3 5.1 5.8 5.8 5.4 5.4 5.7
15 16纽约喷气机5.7 6.8 6.7 6.0 5.4 5.4 5.4
16 17克利夫兰5.7 5.3 5.2 5.0 5.8 5.1
17 18卡罗莱纳5.8 5.3 5.8 5.8 5.4
18 19华盛顿5.8 5.8 6.1 5.7 5.9 5.3
19 20纽约巨人5.8 6.0 4.9 5.7
19 20纽约巨人5.8 6.0 4.9 5.7 6.0 5.7
20 21丹佛5.96.2 4.8 6.0 5.7 4.9
21 22新奥尔良5.9 4.8 4.7 6.1 5.8 5.4 5.4 5.4 5.6 5.6 5.6 5.2
23 24费城6.1 7.0 5.6 5.6 5.9 6.9 6.4 5.8 5.3
25 26拉公羊6.1 6.6 5.4 6.8 5.8 5.3
26 27西雅图6.1 7.2 6.1 6.1 6.7 5.8 5.8 5.9 4.9
27 28亚特兰大6.2 5.1 4.8 6.4 5.9 5.2
28 29辛辛那提6.2 5.7 6.3 6.2 6.2 6.9 5.2
28 29辛辛那提6.2 5.7 6.3 6.2 6.2 6.2 6.9 5.2
29迈阿密6.3 6.7 6.3 6.1 6.5 5.4
30 31坦帕湾6.4 6.4 6.8 5.8 7.1 6.0
3132 Oakland 6.6 6.2 6.9 6.5 6.6 5.6]
回溯(最近的调用为last):
文件“C:\cabs\projects\nflstatsypp.py”,第14行,在
df.to_excel('nflypp.xlsx',sheet_name='yppo',index=false,engine='xlsxwriter')中
attributeerror:'list'对象没有属性'to_excel'
最后一次?如何清理上面的第二个表,使标题像第一个表一样排列?如果已经回答,请添加链接。谢了。注当用python打印出来时,第一个表头是正确的,只是为了澄清。再次感谢。不再编辑。希望这能有所帮助。
我是全新的,只是玩得开心。已经用所有不同的代码研究了几个月。大约有15。Py试图让这个工作。
谢谢你的帮助。如果答案就在那里,我无法找到或理解它。-)终于。再次为自己是个新人感到抱歉。哈哈
有几种方法可以做到这一点。我可能会循环它,将代码压缩一点,在for
循环中迭代时保存每个dataframe。但是,看起来您希望为工作表命名不同的名称,这将涉及以相同的方式创建一个变量来关联每个pd.read_html
,而且您似乎是一个初学者,所以我们将尽量简单,并以另一种方式进行,即直接保存数据。
首先,当您执行oyyp_df=pd.read_html('https://www.teamrankings.com/nfl/stat/yards-per-play.html',header=0)
时,它将其存储为dataframe,但将其打包到一个列表中(请参见此处)。
此外,回头阅读Python中的列表也是有益的。因此,for
循环遍历每个列表(OYYP_DF、DYYP_DF
)中的这些项。
如果要调用列表中的特定项,可以按其索引/位置调用。但要注意的关键是,索引从0开始。所以列表中的第一项位于位置0,第二项位于位置1,等等。
a_list=['第一项‘,'sencond项’,‘第三项']
要调用第一个项,您需要键入a_list[0]
并看到输出“first item”。
我们所能做的是通过将第一个项目设置为另一个名称来存储它(或者您实际上可以使用相同的名称...但是要小心,如果您的列表中有其他项目,您会丢失这些项目);OYYP_DF=OYYP_DF[0]
我修改了一些东西,希望在下面的代码中更加清晰。
import pandas as pd
html_data1 = pd.read_html('https://www.teamrankings.com/nfl/stat/yards-per-play.html',header=0)
html_data2 = pd.read_html('https://www.teamrankings.com/nfl/stat/opponent-yards-per-play',header=0)
for df in (html_data1, html_data2):
print(df)
oyyp_df = html_data1[0]
dyyp_df = html_data2[0]
writer = pd.ExcelWriter('nflypp.xlsx')
oyyp_df.to_excel(writer, sheet_name='yppo', index=False)
dyyp_df.to_excel(writer, sheet_name='yppd', index=False)
writer.save()
writer.close()
我想使用页面而不是使用页面。但是当使用html页面时,我得到了错误。但是如果我使用jsp页面,我没有得到任何错误。 当我使用
问题内容: 我在Android应用程序上使用Retrofit + RxJava,并问自己如何处理API分页以链接调用,直到检索到所有数据。是这样的: 所述ApiResponse对象具有简单的结构: API将返回下一个值,直到最后一页。 有一些好的方法可以做到这一点吗?试图结合一些flatMaps(),但没有成功。 问题答案: 您可以递归建模: 然后,要消耗它, 那应该使您有一个流ResponseO
我确实有一个react-application,使用BrowserRouter在页面之间进行路由。我还有一个带有Spring Boot的Java后端。 当我用applicationRunner和npm启动后端和前端时,browserrouter工作得很好。例如,http://localhost:3000/home工作正常。并且localhost:8080/api/collection/{id}可以
我有一些代码下面分页数据从控制器发送: 我犯了这样一个错误: org.thymeleaf.exceptions.TemplateProcessingExcture:异常评估SpringEL表达式:"#numbers.sequence(0, nubmerOfPage.totalPages-1)" 控制器中的代码: 我找到了根本问题: 组织。springframework。表示斯佩尔。SpelEval
我使用Spring Boot设置了一个非常简单的文件上传。我想知道是否有一种简单的方法可以在超过最大文件大小时显示错误页面。 我上传了一个非常简单的例子,说明我试图在github上实现的目标。 基本上,这个想法是在全局Spring异常处理程序中捕获MultipartException: 处理文件上传的控制器非常简单: 和上传页面。html thymeleaf模板也与之关联: 这个想法是当文件太大时