如何提取嵌套字典中的值并转换为Pandas DataFrame
解决方案
你生成的filtered_d字典中每个值本身已经是DataFrame结构,不需要额外通过from_dict转换,直接遍历字典处理每个表即可:
# 定义存储处理后表格的字典,键为表名,值为格式正确的DataFrame processed_tables = {} # 如果你提到的第174行是当前子表的第一行,header_row_pos设为0;如果是其他位置自行调整数值即可 header_row_pos = 0 for table_name, raw_sub_df in filtered_d.items(): # 提取列标题 col_header = raw_sub_df.iloc[header_row_pos] # 取标题行之后的内容作为正式数据 cleaned_df = raw_sub_df[header_row_pos + 1:] # 赋值列名 cleaned_df.columns = col_header # 重置行索引 cleaned_df = cleaned_df.reset_index(drop=True) # 存入结果字典 processed_tables[table_name] = cleaned_df # 调用示例:获取Table 5的DataFrame table5_df = processed_tables['Table 5']
如果需要将所有表格合并为一个总表,保留表名作为来源标识,可以增加以下代码:
all_tables_df = pd.concat( processed_tables, names=['table_name', 'original_row_id'] ).reset_index(drop=False)
原有代码问题说明
你之前写的嵌套字典推导式会将所有表的列打散为(表名, 列名)格式的行索引,和你需要保留单表结构的需求不符,属于对filtered_d数据结构的误判,不需要该转换逻辑。
内容的提问来源于stack exchange,提问作者Qthry
相关产品推荐
相关产品推荐

