python - 使用 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)
解决方案
一个简单的答案是使用 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中使用了。)
推荐阅读
- python - numpy 表达式中的无效类型提升错误
- bash - 是否可以在服务内运行 shell 命令
- c++ - 向量的自动参考?
- php - OpenCart 站点在注销时出现错误——ERR_TOO_MANY_REDIRECTS
- java - apache-beam java 的 ElasticsearchIO 是否支持 Templating 和 ValueProvider 参数?调用模板时出错
- python - 提取以字典中的键命名的未指定数量的字典(Python)
- cassandra - 在 python 客户端中没有强制执行 Cassandra retry_policy?
- java - 骆驼无法呼叫休息服务
- python - For Loop Enumerate vs dict on enumerate
- python - 如果满足条件,则在新列中分配一个值