从包含列表的嵌套字典创建数据框 - python

我找不到类似的答案来解决我的问题,所以我们开始:

我有以下形式的字典:

d = {key_1: 
        {
         metric_1: [value_11, value_12], 
         metric_2: [value_13, value_14], 
         metric_3: value_15
       }, 
      key_2: {
         metric_1: [value_21], 
         metric_2: [value_22], 
         metric_3: value_23
       }
    }

如您所见,指标在其列表中包含的项目数量不同。

将其转换为df的好方法是什么?如果使用from_dict方法,最终将得到包含列表的df单元(错误)。

我想要实现的是为列表中的每个值创建一个新行,并将键保留为索引:

index | metric_1 | metric_2 | metric_3
———————————————————————————————————————
key_1 | value_11 | value_13 | value_15
key_1 | value_12 | value_14 | value_15
key_2 | value_21 | value_22 | value_23

有想法吗? 🙂

python大神给出的解决方案

如果您的数据框具有任意长度的键和值,则这是一种方法

data_dict = {k : pd.DataFrame(v) for k,v in d.items()}

df = pd.concat(data_dict .values(),keys=data_dict.keys())

print(df)


         metric_1  metric_2  metric_3
key_1 0  value_11  value_13  value_15
      1  value_12  value_14  value_15
key_2 0  value_21  value_22  value_23

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

如何打印浮点数的全精度[Python] - python

我编写了以下函数,其中传递了x,y的值:def check(x, y): print(type(x)) print(type(y)) print(x) print(y) if x == y: print "Yes" 现在当我打电话check(1.00000000000000001, 1.0000000000000002)它正在打印:<…

使用pandas dataframe.query()选择列 - python

dataframe.query()上的文档非常简洁http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.query.html。我也无法通过网络搜索找到投影的示例。因此,我尝试仅提供列名:这给出了语法错误。对于键入select,然后键入列名也是如此。那么..该怎么做? py…