如何将值为嵌套元组列表的字典转换为Pandas DataFrame
嵌套字典转Pandas DataFrame实现方法
你可以通过列表推导式先对原始嵌套结构做扁平化处理,再直接转换为DataFrame,示例代码如下:
import pandas as pd # 原始数据 raw_data = { 0: [('A1', 0.0037505763997138838), ('A2', 0.0036963076240675245), ('A3', 0.0035451257931104485), ('A4', 0.003501467316849233), ('A5', 0.00343229837150675), ('A6', 0.0033731723637910062), ('A7', 0.0033713118048861465), ('A8', 0.003325231288305062), ('A9', 0.002885164987475754), ('A10', 0.0028834984584371797)], 1: [('B1', 0.011094831353420088), ('B2', 0.009526049091086916), ('B3', 0.007002935827927014), ('B4', 0.00511673700015512), ('B5', 0.004870300921667765), ('B6', 0.004496108376557714), ('B7', 0.004230892962061271), ('B8', 0.004137434850455194), ('B9', 0.003958335393193675), ('B10', 0.0038285145788315993)] } # 扁平化处理原始数据 rows = [] for num, tuple_list in raw_data.items(): for label, probs in tuple_list: rows.append([num, label, probs]) # 转换为DataFrame df = pd.DataFrame(rows, columns=['num', 'label', 'probs'])
执行后得到的df就是你需要的目标格式,打印后输出如下:
num label probs 0 0 A1 0.003751 1 0 A2 0.003696 2 0 A3 0.003545 3 0 A4 0.003501 4 0 A5 0.003432 5 0 A6 0.003373 6 0 A7 0.003371 7 0 A8 0.003325 8 0 A9 0.002885 9 0 A10 0.002883 10 1 B1 0.011095 11 1 B2 0.009526 12 1 B3 0.007003 13 1 B4 0.005117 14 1 B5 0.004870 15 1 B6 0.004496 16 1 B7 0.004231 17 1 B8 0.004137 18 1 B9 0.003958 19 1 B10 0.003829
如果需要保留完整小数精度,可以设置Pandas的浮点数显示参数:
pd.set_option('display.float_format', str)
内容的提问来源于stack exchange,提问作者GSA
相关产品推荐
相关产品推荐

