字典中的列表(其中包含一个字典)到数据框
list (which contain a dict in it) inside dict to data frame
您好,我有以下数据
data = {
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"efgh": [
{
"e": 5,
"f": 6,
"g": 7,
"h": 8
}
]
}
我想将其转换为具有以下格式的 pandas 数据框
我试过以下方法
df = pd.DataFrame(data)
df
我在键“efgh”之前和之后创建了两个词典。
我将词典“dict1”附加到词典“dict2”。
在 pandas 中,我们将键转换为列,将值转换为行。
import pandas as pd
data = { "a": 1, "b": 2, "c": 3, "d": 4, "efgh": [ { "e": 5, "f": 6, "g": 7, "h": 8 } ] }
dict1 = {k: v for k, v in data.items() if k!="efgh"}
dict2 = {k: v for k, v in data['efgh'][0].items()}
dict1.update(dict2)
df = pd.DataFrame([dict1])
print(df)
这看起来有点像您要找的 pd.json_normalize
?如果你这样做
df = pd.json_normalize(data, record_path="efgh", meta=["a", "b", "c", "d"])
你会得到
e f g h a b c d
0 5 6 7 8 1 2 3 4
这基本上就是您想要的,只是列的顺序不同。您可以通过以下方式进行调整:
df = df.sort_index(axis=1)
a b c d e f g h
0 1 2 3 4 5 6 7 8
您好,我有以下数据
data = {
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"efgh": [
{
"e": 5,
"f": 6,
"g": 7,
"h": 8
}
]
}
我想将其转换为具有以下格式的 pandas 数据框
我试过以下方法
df = pd.DataFrame(data)
df
我在键“efgh”之前和之后创建了两个词典。
我将词典“dict1”附加到词典“dict2”。
在 pandas 中,我们将键转换为列,将值转换为行。
import pandas as pd
data = { "a": 1, "b": 2, "c": 3, "d": 4, "efgh": [ { "e": 5, "f": 6, "g": 7, "h": 8 } ] }
dict1 = {k: v for k, v in data.items() if k!="efgh"}
dict2 = {k: v for k, v in data['efgh'][0].items()}
dict1.update(dict2)
df = pd.DataFrame([dict1])
print(df)
这看起来有点像您要找的 pd.json_normalize
?如果你这样做
df = pd.json_normalize(data, record_path="efgh", meta=["a", "b", "c", "d"])
你会得到
e f g h a b c d
0 5 6 7 8 1 2 3 4
这基本上就是您想要的,只是列的顺序不同。您可以通过以下方式进行调整:
df = df.sort_index(axis=1)
a b c d e f g h
0 1 2 3 4 5 6 7 8