我正在尝试将嵌套的json数据读取到pandas数据框中。使用以下代码:
"alpha" should " have two decimal numbers after comma" in {
val alpha = readAlpha
//assert(alpha == (f"$alpha%.2f"))
}
以下输出:
deptdata = json.loads(data)
print(pd.DataFrame(json_normalize(deptdata)))
如果我使用 dept branchData
0 Mechanical [{'branch': 'abc', 'sale': 12}]
1 Civil [{'branch': 'xyz', 'sale': 18}]
,我会得到
pd.DataFrame(json_normalize(deptdata, record_path="branchData"))
但是我丢失了部门细节。如何同时获取dept和branchData和groupby dept和branch?
答案 0 :(得分:0)
您可以通过几种方法做到这一点,首先,我将在单独的数据帧中读取两个json,如果索引匹配,则将concat读取。
如果这不起作用,并且您的第一个输入与上面的匹配,我们可以在ast
模块literal_eval
的熊猫中使用一些字符串方法,将您的字符串对象作为字典读取并解析出来。
from ast import literal eval
df1 = pd.concat([df[['dept']],
df['branchData'].replace({'\[' : '', '\]' : ''}
,regex=True).map(literal_eval).apply(pd.Series)],axis=1)
print(df1)
dept branch sale
0 Mechanical abc 12
1 Civil xyz 18