如何以变量命名DataFrame?基于多索引df_yearly的分表需求
解决动态命名DataFrame并保存到Excel的问题
首先,你之前的写法报错是因为Python不允许将值赋值给表达式(比如f-string、字符串拼接结果),赋值语句的左边必须是合法的变量名,不能是动态生成的字符串。
推荐方案:用字典存储多个ticker的DataFrame
这是最安全、易维护的方式,尤其适合处理多个ticker的场景:
# 定义要处理的ticker列表 tickers = ["META", "AAPL", "GOOG"] # 创建空字典存储每个ticker对应的DataFrame df_dict = {} for ticker in tickers: # 将子集存入字典,键为ticker名,值为对应的DataFrame df_dict[ticker] = df_yearly.query('Ticker in @ticker')
之后调用某个ticker的DataFrame时,直接用df_dict["META"]即可。如果要保存到Excel的不同工作表,用pandas.ExcelWriter循环处理:
from pandas import ExcelWriter with ExcelWriter("ticker_data.xlsx") as writer: for ticker, df in df_dict.items(): df.to_excel(writer, sheet_name=ticker)
不推荐但可行:动态生成全局变量
如果你一定要生成df_META这种独立变量名,可以用globals()字典(但不建议,容易造成命名混乱,难以批量管理):
ticker = "META" globals()[f"df_{ticker}"] = df_yearly.query('Ticker in @ticker')
执行后就会生成df_META这个变量,但处理多个ticker时,没法方便地批量操作这些变量,所以优先选择字典方案。
内容的提问来源于stack exchange,提问作者thephillylawyer
相关产品推荐
相关产品推荐

