如何将规范化嵌套JSON列追加至无共同键的原DataFrame?
解决方法
原始DataFrame(df)和JSON规范化后的DataFrame(df1)索引完全对齐,不需要额外连接列,直接按列拼接即可实现需求。
完整代码
import pandas as pd df = pd.DataFrame({ "json": [ {'foo': {'foo_1': {'foo_1_1': 1.0, 'foo_1_2': 'foo'}, 'foo_2': {'foo_2_1': 1.0, 'foo_2_2': 'moo'}}}, {'foo': {'foo_1': {'foo_1_1': 1.0, 'foo_1_2': 'foo'}, 'foo_2': {'foo_2_1': 1, 'foo_2_2': 'moo'}}} ], "id": [1,1], "label": ['foo', 'moo'] }) df1 = pd.json_normalize(df['json']) # 移除原始json列后按列拼接 result = pd.concat([df.drop('json', axis=1), df1], axis=1) print(result)
输出结果
id label foo.foo_1.foo_1_1 foo.foo_1.foo_1_2 foo.foo_2.foo_2_1 foo.foo_2.foo_2_2 0 1 foo 1.0 foo 1.0 moo 1 1 moo 1.0 foo 1.0 moo
关键说明
pd.concat([...], axis=1):指定按列方向拼接数据,因两个DataFrame索引完全匹配,会自动将每行数据一一对应。df.drop('json', axis=1):移除原始DataFrame中的json列,避免结果保留冗余的原始JSON数据。
内容的提问来源于stack exchange,提问作者Blob
相关产品推荐
相关产品推荐

