📅  最后修改于: 2023-12-03 15:25:24.220000             🧑  作者: Mango
在Python中,我们可以使用字典(dict)来保存多个数据,每个数据都有一个唯一的键(key)来进行访问。有时候我们需要将多个字典合并成一个数据表(DataFrame)来进行分析和处理。这时候就需要将嵌套字典转成数据表。
嵌套字典就是在一个字典里面再放置一个或多个字典。例如:
dict_nested = {
"Adam": {"age": 25, "gender": "male", "city": "New York"},
"Bob": {"age": 30, "gender": "male", "city": "Los Angeles"},
"Cathy": {"age": 28, "gender": "female", "city": "San Francisco"}
}
上面的例子中,dict_nested
是一个顶层字典,其中包含了三个子字典:"Adam"
、"Bob"
和 "Cathy"
。
要将嵌套字典转成数据表,我们可以使用 pandas 库中的 DataFrame()
函数。我们需要先将子字典转成数据表,然后再将它们合并起来。具体步骤如下:
"name"
)"name"
,并将该列的值设为对应的人名下面是具体的代码实现:
import pandas as pd
dict_nested = {
"Adam": {"age": 25, "gender": "male", "city": "New York"},
"Bob": {"age": 30, "gender": "male", "city": "Los Angeles"},
"Cathy": {"age": 28, "gender": "female", "city": "San Francisco"}
}
# Create an empty DataFrame
df = pd.DataFrame()
# Add the "name" column
df["name"] = dict_nested.keys()
# Loop through each sub-dictionary
for name, nested_dict in dict_nested.items():
# Convert the sub-dictionary to a DataFrame
temp_df = pd.DataFrame.from_dict(nested_dict, orient="index").T
# Add the "name" column
temp_df["name"] = name
# Append the DataFrame to the main DataFrame
df = df.append(temp_df, ignore_index=True)
print(df)
这段代码的输出结果如下:
age gender city name
0 25.0 male New York Adam
1 30.0 male Los Angeles Bob
2 28.0 female San Francisco Cathy
可以看到,我们成功地将嵌套字典转成了一张数据表。每个子字典中的值对应数据表中的一列,而每个子字典的键对应数据表中的一行。同时,我们还可以看到,数据表中多了一列 "name"
,该列记录了每个人的名字。
本文介绍了如何将嵌套字典转成数据表。我们使用了 pandas 库中的 DataFrame()
函数,以及字典和循环等基本的 Python 语法。嵌套字典转数据表是数据处理和分析中经常需要用到的操作,希望本文对读者有所帮助。