Pandas 从嵌套字典中构建DataFrame
在本文中,我们将介绍如何从嵌套字典中构建Pandas DataFrame。首先,让我们定义一个嵌套字典,该字典包含每个人上个月使用和支付的不同服务的详细信息。
在上面的代码中,嵌套字典的键是人名,值是包含各种服务和支付信息的字典。如果我们想将这个数据转换为一个方便的表格形式,最好的方法是将其转换为Pandas DataFrame。
阅读更多:Pandas 教程
使用from_dict方法
Pandas提供了一个from_dict
方法,可以从字典创建DataFrame。然而,当字典嵌套时,该方法提供了不同的选项,取决于嵌套的字典包含键还是值。
在我们的例子中,嵌套字典包含每个人的服务和支付信息。在这种情况下,我们需要指定orient
参数为”index”以表示嵌套字典的每个子字典都是行。以下是如何使用from_dict
方法以这种方式创建DataFrame。
这将产生以下输出:
在上面的代码中,我们使用了orient
参数来告诉Pandas将每个子字典视为行。此外,我们还指定字典的键作为新DataFrame中的索引。
由于嵌套字典包含不同的键,因此我们得到的DataFrame包含NaN(Not a Number)值。这表示某些人没有使用或支付某些服务。我们可以使用fillna
方法将NaN替换为零。例如,以下代码将NaN替换为零:
这将产生以下输出:
使用concat方法
另一种将嵌套字典转换为DataFrame的方法是使用Pandas的concat
方法。这种方法可以在某些情况下比from_dict
方法更灵活。例如,在我们的例子中,您可能希望只包括Spotify、Netflix和Uber这三个服务,并将NaN替换为零。以下是使用concat
方法执行此操作的示例代码:
这将产生以下输出:
在上面的代码中,我们使用循环遍历嵌套字典中的每个子字典,并将其转换为一个DataFrame。然后我们将这些数据框中的NaN替换为零并仅保留Spotify、Netflix和Uber这三个服务的列。接下来,我们将每个DataFrame添加到dfs
列表中,并使用concat
方法将它们连接在一起,从而构建最终的DataFrame。
总结
本文介绍了如何从嵌套字典中构建Pandas DataFrame。我们演示了使用from_dict
和concat
方法来实现这一目标,以及如何处理NaN值和仅选择所需列的情况。通过使用Pandas的这些方法,我们可以轻松地将嵌套字典转换为方便的表格形式,以进行后续分析和可视化。