熊猫合并列json_normalize后

问题描述:

我有一个单列中的字典列表,但对于每一行,不同的post_id在一个单独的列。我已经得到了我通过pd.concat(json_normalize(d) for d in data['comments'])寻找的数据帧,但我想另一列从原来的数据框中添加到该附加原来POST_ID熊猫合并列json_normalize后

原始

'post_id' 'comments' 
123456 [{'from':'Bob','present':True}, {'from':'Jon', 'present':False}] 

当前结果(后json_normalize

comments.from comments.present 
Bob    True 
Jon    False 

所需的结果

comments.from comments.present post_id 
Bob    True    123456 
Jon    False    123456 

感谢您的帮助

首先考虑输出数据帧to_json然后运行json_normalize

import json 
from pandas import DataFrame 
from pandas.io.json import json_normalize 

df = DataFrame({'post_id':123456, 
       'comments': [{'from':'Bob','present':True}, 
          {'from':'Jon', 'present':False}]})  
df_json = df.to_json(orient='records') 

finaldf = json_normalize(json.loads(df_json), meta=['post_id'])  
print(finaldf) 

# comments.from comments.present post_id 
# 0   Bob    True 123456 
# 1   Jon   False 123456 
+0

你会如何规范这一点,如果你的JSON字符串是jsons的名单像 '[{“从”:“鲍勃” ,'present':True},{'from':'Bob2','present':True}]' – iambdot

+0

您可能需要提出一个新问题。没有嵌套元素就不需要标准化。 – Parfait

+0

https://stackoverflow.com/questions/48913603/pandas-list-of-json-into-columns – iambdot