将值为列表的字典转换为dataframe 列表元素拆分为独立行存储
实现方法
下面提供两种常用的实现方式,都可以得到你需要的DataFrame格式:
- 方法1:pandas内置explode方法(代码最简洁)
import pandas as pd # 这里替换成你实际的partlistzonesdef字典 partlistzonesdef = { 1: [60, 127], 2: [21, 43, 61, 19], 3: [186, 154, 37], 4: [99, 68, 80, 87, 128, 98] } # 核心转换逻辑 df = pd.Series(partlistzonesdef, name='Area').explode().reset_index(names='Index')
如果使用的pandas版本较低,不支持reset_index的names参数,可以用下面的兼容写法:
df = pd.Series(partlistzonesdef, name='Area').explode().reset_index().rename(columns={'index':'Index'})
- 方法2:手动遍历构造数据(逻辑直观,易调试)
import pandas as pd partlistzonesdef = { 1: [60, 127], 2: [21, 43, 61, 19], 3: [186, 154, 37], 4: [99, 68, 80, 87, 128, 98] } data_list = [] for index_val, area_list in partlistzonesdef.items(): for area_val in area_list: data_list.append({"Index": index_val, "Area": area_val}) df = pd.DataFrame(data_list)
两种方法输出的结果完全一致,都符合你要求的格式。
内容的提问来源于stack exchange,提问作者Arnoldo Oliva
相关产品推荐
相关产品推荐

