我有一个 for 循环用于获取数据的数据帧(我提供了股票列表,它为每只股票获取数据的数据帧。我通过使用字典来做到这一点
d={}
fullset= pd.DataFrame ()
for name in stocklist:
接下来,我可以使用以下命令水平合并数据集:
fullset= pd.concat([fullset, d[name]], axis=1)
我遇到的问题是数据集都具有相同的列标题。在这次合并中我可以做些什么,以便将“名称”变量附加到其特定数据帧的每个标头中?例如,SPX-最高价、SPX-最低价、SPX-收盘价...道指最高价、道指最低价、道指收盘价
*注意:我知道有一个分层选项(基本上是添加第二个索引),但我无法让它工作,即使我做到了,我的首选是将股票名称附加到每个列,因为我在数据之上运行 ML 模型,但我不知道它将如何处理分层标题。
除此之外,我尝试使用
keys=d[name]
创建键参数,但这不起作用。我也尝试过仅使用变量“name”,但我并不期望它能起作用,除非 concat 在幕后运行某种 for 循环。
pandas.DataFrame.add_prefix
方法为列名添加前缀。
fullset = pd.DataFrame({})
for name in stocklist:
fullset = pd.concat([
fullset,
d[name].add_prefix(f"{name}-")
], axis=1)
print(fullset)