熊猫合并列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
你会如何规范这一点,如果你的JSON字符串是jsons的名单像 '[{“从”:“鲍勃” ,'present':True},{'from':'Bob2','present':True}]' – iambdot
您可能需要提出一个新问题。没有嵌套元素就不需要标准化。 – Parfait
https://stackoverflow.com/questions/48913603/pandas-list-of-json-into-columns – iambdot