首页 > 解决方案 > 使用 pandas 合并多个表数据列表并保存为 csv 格式

问题描述

从下面的代码中,当我迭代和打印时,我得到了所有的表数据,但是当我使用 pandas 存储为 csv 格式时,我只得到表数据的第一个列表。如何将它们全部存储到一个 CSV 文件中?

import requests
import pandas as pd
isins = ['LU0526609390:EUR','IE00BHBX0Z19:EUR']

for isin in isins:
    html = requests.get(f'https://markets.ft.com/data/funds/tearsheet/historical?s={isin}').content
    df_list = pd.read_html(html)
    dfs = df_list
    #print(dfs)
    for df in dfs:
        df.to_csv('data.csv', header=False, index=True)
        #print(df)

标签: pythonpandasweb-scraping

解决方案


一个简单的答案是使用 pd.concat() 创建一个新的 df 并保存它。但是,您希望 csv 看起来像什么,因为这种连接的结果将是。[“CSV”]:https ://i.stack.imgur.com/BvZ1X.png

我不知道这是否足够,因为数据并没有真正标记(如果您打算搜索两个以上的基金,可能会出现问题)。

import requests
    import pandas as pd
    funds = ['LU0526609390:EUR', 'IE00BHBX0Z19:EUR']

    for fund in funds:
        html = requests.get(f'https://markets.ft.com/data/funds/tearsheet/historical?s={fund}').content
        df_list = pd.read_html(html)
        df_final = pd.concat(df_list)
        # print(df_final)
        df_final.to_csv('data.csv', header=False, index=True)

(我用fund替换了isin,因为isin已经在python中使用了。)


推荐阅读