【发布时间】:2021-10-09 08:39:04
【问题描述】:
我正在尝试找到一种简单的方法来展平数据框列中存在的嵌套 JSON。数据框列如下所示:
stock Name Annual
x Tesla {"0": {"date": "2020","dateFormatted": "2020-12-31","sharesMln": "3856.2405","shares": 3856240500},"1": {"date": "2019","dateFormatted": "2019-12-31","sharesMln": "3856.2405","shares": 3856240500}}
y Google {"0": {"date": "2020","dateFormatted": "2020-12-31","sharesMln": "2526.4506","shares": 2526450600},"1": {"date": "2019","dateFormatted": "2019-12-31","sharesMln": "2526.4506","shares": 2526450600},"2": {"date": "2018","dateFormatted": "2018-12-31","sharesMln": "2578.0992","shares": 2578099200}}
z Big Apple {}
如何将上述数据框转换为:
Stock Name date dateFormatted sharesMln shares
x Tesla 2020 2020-12-31 3856.2405 3856240500
x Tesla 2019 2019-12-31 3856.2405 3856240500
y Google 2020 2020-12-31 2526.4506 2526450600
y Google 2019 2019-12-31 2526.4506 2526450600
y Google 2018 2018-12-31 2578.0992 2578099200
z Big Apple None None None None
我已尝试使用 pd.json_normalize(dataframe['Annual'],max_level=1),但难以获得如上所述的预期结果。
任何指针将不胜感激。
【问题讨论】:
-
您的
Annual列不是 json 有效(缺少{ })。"0": {"date": ...}应该是{"0": {"date": ...}}。我是对的? -
是的,你是对的。我已经更新了问题以使其成为有效的字典。不过感谢您的回复!
标签: json python-3.x pandas dataframe