为什么 Pandas df.head() 显示与 to_csv 导出不同
Why does Pandas df.head() show differently to to_csv export
我正在尝试使用 pandas 和一些简单的代码从几页中抓取数据。
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。
我正在尝试使用 pandas 和一些简单的代码从几页中抓取数据。
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。