Python dict到df
我有一组可以通过股票数据API获得的数据,数据量以及股票如何取决于用户的请求。我从API收到的数据是作为字典提供的 例如:Python dict到df,python,pandas,for-loop,Python,Pandas,For Loop,我有一组可以通过股票数据API获得的数据,数据量以及股票如何取决于用户的请求。我从API收到的数据是作为字典提供的 例如: {'YAR': last date 2020-07-10 336.4 2020-07-13 344.0 2020-07-14 344.3, 'DNB': last date 2020-07-10 129.60 2020-07-13 142.4
{'YAR': last
date
2020-07-10 336.4
2020-07-13 344.0
2020-07-14 344.3,
'DNB': last
date
2020-07-10 129.60
2020-07-13 142.45
2020-07-14 145.50,
'NHY': last
date
2020-07-10 27.35
2020-07-13 28.56
2020-07-14 28.50}
是否可以在Python中编写for循环,其中对于字典中的每个键,它将创建一个新的pandas数据帧行,并将其值和日期作为索引
所以数据框看起来像这样
我尝试过这样的方法,我调用了API今天提供的字典:
tickerlist = ['YAR','DNB','NHY']
df = pd.DataFrame(columns=tickerlist)
for ticker in tickerlist:
df = df.append(pd.DataFrame.from_dict(dataToday[ticker]))
但这给了我一个数据框,看起来像这样:
我知道这可能是一个愚蠢或简单的问题,所有的想法都是值得赞赏的。谢谢!:) 您的数据不是json/dict,我假设数据是
data_as_dict = {
'YAR': { 'date' : [ '2020-07-10', '2020-07-13', '2020-07-14'], 'last' : [336.4, 344.0, 344.3] },
'DNB': { 'date' : [ '2020-07-10', '2020-07-13', '2020-07-14'], 'last' : [129.60, 142.45, 145.50] },
'NHY': { 'date' : [ '2020-07-10', '2020-07-13', '2020-07-14'], 'last' : [27.35, 28.56, 28.50] }
}
比
import pandas as pd
list_of_sub_dfs = []
for stock_dict in data_as_dict:
sub_class = pd.DataFrame.from_dict(data_as_dict[stock_dict], orient="columns")
sub_class.set_index('date')
sub_class.columns = [stock_dict]
list_of_sub_dfs.append(sub_class)
如果没有一个循环,它可能会做得更漂亮,但是想不出一个明显的方法来做到这一点
例如使用
pd.concat(list_of_sub_dfs,axis=1)
要将它们连接到:
YAR DNB NHY
date
2020-07-10 336.4 129.60 27.35
2020-07-13 344.0 142.45 28.56
2020-07-14 344.3 145.50 28.50
请用适当的dict更新您的问题,因为发布的问题格式不正确且不可理解。@Jab这本字典是我请求数据时提供的API,不幸的是,API没有给我选择如何接收数据的选项。无论如何,我已经更新了我的问题,有了一些突破。