gpt4 book ai didi

Python-将列表中隐藏的字典转换为DataFrame

转载 作者:行者123 更新时间:2023-11-30 21:58:47 26 4
gpt4 key购买 nike

我在使用 JSON 中的规范化来处理被识别为列表的字典时遇到问题。目标是从 yahoo_finance 创建一个数据框。

from yahoofinancials import YahooFinancials
import pandas as pd
from pandas.io.json import json_normalize

ticker = 'AAPL'
yahoo_financials = YahooFinancials(ticker)
balance_sheet_data_qt = yahoo_financials.get_financial_stmts('quarterly', 'balance')

#The return is a bit messy, I've simplified it with:
user_dict=balance_sheet_data_qt.get('balanceSheetHistoryQuarterly').get(ticker)
df=pd.DataFrame(user_dict)

但仍然难以将数据带过终点线,目标是将每个季度日期作为每行的索引,并将关键财务列为列。

最佳答案

您可以使用集合中的 ChainMap。

from collections import ChainMap    
df = pd.DataFrame.from_dict(ChainMap(*user_dict), orient='index')

如果你不想使用ChainMap,你可以迭代user_dict(一个列表)中的dict,然后将这些DF追加到主df中。

df = pd.DataFrame()

for d in user_dict:
df = df.append(pd.DataFrame.from_dict(d, orient='index'))

ChainMap 对我来说运行速度明显更快

1.43 ms ± 13.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

对比

7 ms ± 121 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

关于Python-将列表中隐藏的字典转换为DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54799719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com