pandas - 为什么 Pandas df.head() 与 to_csv 导出显示不同
问题描述
我正在尝试使用带有一些简单代码的熊猫从几页中抓取数据。
import pandas as pd
import requests
import numpy as np
dfs = []
http = "https://www.milieudatabase.nl/viewNMD/view_materiaal_new.php?numCode="
for r in range(293,296):
url = f'{http}{r:02d}'
r = requests.get(url)
df_list = pd.read_html(r.text) # this parses all the tables in webpages to a list
dfs.append(df_list)
NMD = pd.concat([pd.DataFrame(dfs)])
print(NMD)
NMD.to_csv('NMD50.csv', index=False)
df.head()
当我使用 df.head() 时,数据框以我想要的方式显示。但是,在我尝试将其发送到 csv 的地方,它会以 3 行的所有数据而不是多行的格式出现。我认为这是 df_list 函数的问题,
任何人都可以帮忙吗?
解决方案
你有几个错误。首先让我展示一下工作代码:
dfs = []
http = "https://www.milieudatabase.nl/viewNMD/view_materiaal_new.php?numCode="
for r in range(293,296):
url = f'{http}{r:02d}'
r = requests.get(url)
df_list = pd.read_html(r.text)
dfs.append(df_list[0])
NMD = pd.concat(dfs)
- 您正在将列表添加到列表中。但实际上,df_list 只有 1 个元素。
- 缩进错误。您正在 for 循环的每个步骤中创建 NMD。
推荐阅读
- javascript - 在 $args (WordPress) 中添加类别 ID 时,Ajax 会加载更多代码中断
- mysql - 如何从数据库中实现数组?
- android - 当在 BaseViewmodel 类型的 BaseUIState 中使用泛型并在 mvi 中为其分配初始值时会出错
- python - 使管理站点中的模型仅在调试模式下显示,否则显示一个模型
- rest - Quarkus 中是否有现成的功能可以为 REST 端点提供工件版本(通过 git.properties 或其他方式)?
- flutter - Flutter:在 PDF 上显示图像网格
- mongodb - 如何在 microk8s 集群上部署 Mongodb 副本集
- java - 为什么提取此 ZIP 存档失败?
- php - Elasticbeanstalk 使用 .ebextensions 修改 php-fpm
- c# - 使用目标类的反射读取二进制文件