首页 > 解决方案 > 将 Yahoo 数据转换为 pandas 数据框

问题描述

我试图从 YahooFinancials 库中获取股息信息。

yahoo_financials = YahooFinancials(['ITSA4.SA'])
print(yahoo_financials.get_daily_dividend_data(start_date, end_date))

我收到这个作为回报

{'ITSA4.SA': [
{'date': 1487682000, 'formatted_date': '2017-02-21', 'amount': 0.166697}, 
{'date': 1488373200, 'formatted_date': '2017-03-01', 'amount': 0.015}, 
{'date': 1496322000, 'formatted_date': '2017-06-01', 'amount': 0.015}, 
{'date': 1502802000, 'formatted_date': '2017-08-15', 'amount': 0.071818}, 
{'date': 1504270800, 'formatted_date': '2017-09-01', 'amount': 0.013636}, 
{'date': 1512129600, 'formatted_date': '2017-12-01', 'amount': 0.013636}, 
{'date': 1514289600, 'formatted_date': '2017-12-26', 'amount': 0.152782}, 
{'date': 1519390800, 'formatted_date': '2018-02-23', 'amount': 0.608409}, 
{'date': 1519909200, 'formatted_date': '2018-03-01', 'amount': 0.013636}, 
{'date': 1527858000, 'formatted_date': '2018-06-01', 'amount': 0.013636}, 
{'date': 1534770000, 'formatted_date': '2018-08-20', 'amount': 0.2088}, 
{'date': 1535979600, 'formatted_date': '2018-09-03', 'amount': 0.015}, 
{'date': 1543838400, 'formatted_date': '2018-12-03', 'amount': 0.02}, 
{'date': 1545134400, 'formatted_date': '2018-12-18', 'amount': 0.0081}, 
{'date': 1550840400, 'formatted_date': '2019-02-22', 'amount': 0.4532}, 
{'date': 1551445200, 'formatted_date': '2019-03-01', 'amount': 0.02}, 
{'date': 1559566800, 'formatted_date': '2019-06-03', 'amount': 0.02}, 
{'date': 1565960400, 'formatted_date': '2019-08-16', 'amount': 0.3405}, 
{'date': 1567429200, 'formatted_date': '2019-09-02', 'amount': 0.02}, 
{'date': 1575288000, 'formatted_date': '2019-12-02', 'amount': 0.02}, 
{'date': 1576238400, 'formatted_date': '2019-12-13', 'amount': 0.00595}, 
{'date': 1582290000, 'formatted_date': '2020-02-21', 'amount': 0.226}, 
{'date': 1583154000, 'formatted_date': '2020-03-02', 'amount': 0.02}, 
{'date': 1591016400, 'formatted_date': '2020-06-01', 'amount': 0.02}, 
{'date': 1597755600, 'formatted_date': '2020-08-18', 'amount': 0.02}, 
{'date': 1598446800, 'formatted_date': '2020-08-26', 'amount': 0.02}, 
{'date': 1598965200, 'formatted_date': '2020-09-01', 'amount': 0.02}]}

我想将其转换为 Pandas Dataframe。我如何得到它?

标签: pythonpandas

解决方案


将 json 响应转换为数据框:

import pandas as pd
pd.DataFrame(data['ITSA4.SA'])

或者

df = pd.json_normalize(data['ITSA4.SA'])

推荐阅读