如何用for循环创建多个命名规范的DataFrame
解决循环生成独立DataFrame不被覆盖的问题
我明白你遇到的困扰了——每次用for循环拉取API数据生成DataFrame时,前一次的数据总是被新的覆盖,这大概率是因为你一直在用同一个变量名(比如df)来接收每次循环的结果对吧?别担心,用一个字典来存储这些独立的DataFrame就能完美解决这个问题,下面给你具体的实现思路和代码示例:
核心思路
不用单一变量存储DataFrame,而是创建一个字典,把每个元组里指定的名称作为字典的键,对应拉取到的DataFrame作为值。这样每个命名的DataFrame都会被独立保存,不会互相覆盖。
代码示例
假设你的待拉取数据元组列表是类似这样的(第一个元素是API需要的时间间隔参数,第二个是你想要的DataFrame名称):
# 示例:你的元组列表结构 fetch_tasks = [ ("5min", "five_minute_data"), ("1h", "hourly_data"), ("1d", "daily_data"), ("7d", "weekly_data") ]
接下来是完整的实现代码:
import pandas as pd import requests # 假设你用requests调用API,可替换为你实际使用的库 # 初始化空字典,用于存放所有独立的DataFrame df_collection = {} # 遍历每个拉取任务 for interval, df_name in fetch_tasks: # 1. 调用API拉取数据(替换成你实际的API请求逻辑) api_endpoint = f"https://your-api-url.com/get_data?interval={interval}" response = requests.get(api_endpoint) raw_data = response.json() # 假设API返回JSON格式数据 # 2. 将数据转换为DataFrame current_df = pd.DataFrame(raw_data) # 3. 将DataFrame存入字典,用指定名称作为键 df_collection[df_name] = current_df
如何访问独立的DataFrame
之后你可以通过字典的键(也就是你指定的名称)来直接访问对应的DataFrame:
# 查看5分钟间隔的数据前5行 print(df_collection["five_minute_data"].head()) # 查看日度数据的基本信息 df_collection["daily_data"].info()
额外小技巧:批量保存DataFrame
如果需要把这些独立的DataFrame保存到文件,还可以批量处理:
for df_name, df in df_collection.items(): # 保存为CSV文件,文件名就是你指定的DataFrame名称 df.to_csv(f"{df_name}.csv", index=False)
内容的提问来源于stack exchange,提问作者hkml
相关产品推荐
相关产品推荐

