Python中合并接口数据为DataFrame并导出至原Excel的方法
解决方案
1. 合并字典列表为DataFrame并与原数据对齐
假设你的字典列表名为price_change_list,每个元素是包含股票代码及对应时段涨跌幅的字典(例如{'Symbol': 'MSFT', '1日涨': 1.2, '周涨': 3.5})。以下是实现步骤:
首先读取原Excel数据:
import pandas as pd # 读取原Excel文件 df_original = pd.read_excel('allstockdata.xlsx')
将字典列表转换为DataFrame,然后按原数据的Symbols列进行左合并,确保行数完全匹配(原数据4500行保持不变,接口未返回的股票对应列填充NaN):
# 将字典列表转为DataFrame df_change = pd.DataFrame(price_change_list) # 按Symbols列左合并,确保对齐原数据的顺序和行数 df_merged = df_original.merge(df_change, left_on='Symbols', right_on='Symbol', how='left').drop(columns='Symbol')
如果你的字典列表里每个元素直接对应原数据行的嵌套字典(比如原数据第i行对应字典{'1日涨': 0.8, '月涨': -2.1}),无需匹配Symbol,直接将列表转为DataFrame后拼接即可:
# 直接将字典列表转为DataFrame,与原数据列拼接 df_change = pd.DataFrame(price_change_list) df_merged = pd.concat([df_original, df_change], axis=1)
2. 导出回原Excel文件
使用pandas.ExcelWriter将合并后的DataFrame写入原文件,可选择覆盖原工作表或新增工作表:
覆盖原工作表
with pd.ExcelWriter('allstockdata.xlsx', mode='w', engine='openpyxl') as writer: df_merged.to_excel(writer, index=False, sheet_name='Sheet1')
新增工作表(保留原数据)
with pd.ExcelWriter('allstockdata.xlsx', mode='a', engine='openpyxl', if_sheet_exists='new') as writer: df_merged.to_excel(writer, index=False, sheet_name='合并后数据')
注意:使用openpyxl引擎需要提前安装,可通过pip install openpyxl完成安装。
内容的提问来源于stack exchange,提问作者noviceprogramer
相关产品推荐
相关产品推荐

