将字典嵌套列表转换为pandas DataFrame

4
有没有人能够建议一个高效的方法将列表中的字典列表转换为pandas数据帧?请保留HTML标记。
Input = [[{'name':'tom','roll_no':1234,'gender':'male'},
          {'name':'sam','roll_no':1212,'gender':'male'}],
          [{'name':'kavi','roll_no':1235,'gender':'female'},
          {'name':'maha','roll_no':1211,'gender':'female'}]]

提供的示例输入中,字典键与预期输出相同,如下所示:
Output =      name       roll_no       gender
          0   tom        1234          male
          1   sam        1212          male
          2   kavi       1235          female
          3   maha       1211          female

请查看链接的重复问题,特别是那个问题中的我的回答 - cs95
你的回答中“总结”部分已经涵盖了列表中的嵌套字典,但并没有回答我的问题,即列表内有嵌套列表和字典。 - Mahamutha M
哦,嗯,只需将列表展平; from itertools import chain; pd.DataFrame(list(chain.from_iterable(Input))) 这很简单。 - cs95
感谢您的回答。您在[https://dev59.com/V2Ij5IYBdhLWcg3wGRiM#53831756]中提到了吗? - Mahamutha M
1
你说得对,它确实不是。将重新打开。 - cs95
1个回答

4

您需要使用 itertools.chain 来扁平化您的输入,然后可以调用 pd.DataFrame 构造函数。

from itertools import chain
pd.DataFrame(list(chain.from_iterable(data)))

   gender  name  roll_no
0    male   tom     1234
1    male   sam     1212
2  female  kavi     1235
3  female  maha     1211

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接