首页 > 解决方案 > 为什么 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 函数的问题,

任何人都可以帮忙吗?

标签: pandasdataframeexport-to-csv

解决方案


你有几个错误。首先让我展示一下工作代码:

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。

推荐阅读