如何在Python Pandas中从不等长数组字典添加新列且不丢失数据
解决方案
要生成符合要求的三列DataFrame,我们可以通过遍历字典的键值对构造数据,再转为Pandas的DataFrame,具体实现如下:
代码实现
import pandas as pd # 给定的目标字典 dict_table = {'Table1': [1, 2], 'Table2': [3, 4, 5], 'Table3': [6, 7, 8, 9, 10, 11]} # 构造结构化数据列表 data_records = [] for table_label, value_list in dict_table.items(): for val in value_list: data_records.append({ 'Table_name': table_label, 'Table_value': val, 'New_Column': table_label }) # 转换为DataFrame result_df = pd.DataFrame(data_records) print(result_df)
输出结果
运行代码后会得到如下结构的DataFrame:
Table_name Table_value New_Column 0 Table1 1 Table1 1 Table1 2 Table1 2 Table2 3 Table2 3 Table2 4 Table2 4 Table2 5 Table2 5 Table3 6 Table3 6 Table3 7 Table3 7 Table3 8 Table3 8 Table3 9 Table3 9 Table3 10 Table3 10 Table3 11 Table3
逻辑说明
- 两层循环遍历字典:外层遍历每个表名(字典的键),内层遍历对应表的每个数值元素。
- 每遍历一个数值,就生成一条包含
Table_name(所属表名)、Table_value(元素值)、New_Column(所属表名)的记录。 - 最终将所有记录组成的列表转为DataFrame,确保原字典中的所有数据都被保留。
内容的提问来源于stack exchange,提问作者AXz
相关产品推荐
相关产品推荐

