[英]Expanding List of Dicts dataframe
嘗試了一段時間,無法得到我想要的結果。
輸入:
"cursor":"YXJyYXljb25uZWN0aW9uOjA=",
"node":{
"class":1,
"end": [
{"part": "a", "see" : "c"},
{"part": "b", "see" : "c"}
]
}
在 DF 中需要 output。
cursor class end.part end.see
YXJyYXljb25uZWN0aW9uOjA 1 a c
YXJyYXljb25uZWN0aW9uOjA 1 b c
我嘗試使用 json_normalise 但無法正常工作。
任何幫助將不勝感激!
謝謝!
這是另一個解決方案:
#!/usr/bin/python3
import pandas as pd
dic = {
"cursor":"YXJyYXljb25uZWN0aW9uOjA=",
"node":{
"class":1,
"end": [
{"part": "a", "see" : "c"},
{"part": "b", "see" : "c"}
]
}
}
# 1. Use `meta` to specify what we want to show in the result
# 2. Use 'record_path` to flatten the nested list
df = pd.json_normalize(dic, meta=['cursor', ['node', 'class']],
record_path=['node', 'end'] , record_prefix='end.')
# Rename the 'node.class' column to 'class'
df = df.rename(columns={'node.class': 'class'})
# Reindex by the order of columns list
df = df.reindex(columns=['cursor', 'class', 'end.part', 'end.see'])
print(df)
pd.json_normalise
參考: https://towardsdatascience.com/all-pandas-json-normalize-you-should-know-for-flattening-json-13eae1dfb7dd
嘗試:
d = {
"cursor": "YXJyYXljb25uZWN0aW9uOjA=",
"node": {
"class": 1,
"end": [{"part": "a", "see": "c"}, {"part": "b", "see": "c"}],
},
}
df = pd.json_normalize(d).explode("node.end")
x = df.pop("node.end").apply(pd.Series).add_prefix("end.")
df = pd.concat([df, x], axis=1)
print(df)
印刷:
cursor node.class end.part end.see
0 YXJyYXljb25uZWN0aW9uOjA= 1 a c
0 YXJyYXljb25uZWN0aW9uOjA= 1 b c
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.