如何从一个列表中创建一个 Pandas 数据框,该列表具有我要包含在嵌套在重复列表元素内的数据框中的所有值?

How do I create a Pandas Dataframe from a list that has all the values I'm seeking to include in the dataframe nested inside a recurring list element?

列表如下所示。

[
  {
      "legal": [
          {
              "importance": 3,
              "notes": "",
              "updated": 19976,
              "date": 09/05/2020
          }
      ]
  },

  {
      "legal": [
          {
              "importance": 3,
              "notes": "",
              "updated": 15783,
              "date": 09/05/2020
          }
      ]
}
]

我希望列为“重要性”、“注释”、“更新”和“日期”。我想让索引成为“日期”。我似乎无法找到一种方法来使用列表中的“合法”元素来制作 pandas 数据框。我不必将它们包含在数据框中。这就是我接收数据的方式。我想知道制作此 pandas 数据框的正确方法。让它看起来像这样。

| date *index | importance | notes | updated |
|-------------|------------|-------|---------|
| 09/05/2020  |      3     |  NaN  |  19976  |
|             |      3     |  NaN  |  15783  |  

您可以尝试以下列表理解来获取每个字典的 legal 键和第一个(唯一)字典,之后我将空字符串替换为 NaN:

df = pd.DataFrame([i['legal'][0] for i in lst]).replace('', np.nan)

然后:

print(df)

将给予:

         date  importance  notes  updated
0  09/05/2020           3    NaN    19976
1  09/05/2020           3    NaN    15783

为此使用pd.json_normalize

In [33]: pd.json_normalize(data, 'legal').replace({'': np.nan}).set_index('date')
Out[33]:
            importance  notes  updated
date
09/05/2020           3    NaN    19976
09/05/2020           3    NaN    15783