字典结构系列(python)

2024-10-04 01:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前拥有以下词典:

  "2019-09-30": {
    "date": "2019-09-30",
    "period": "+1y",
    "growth": "0.1540",
    "earningsEstimateAvg": "13.2600",
    "earningsEstimateLow": "11.5200",
  },
  "2018-09-30": {
    "date": "2018-09-30",
    "period": "+1q",
    "growth": "0.2800",
    "earningsEstimateAvg": "2.6500",
    "earningsEstimateLow": "2.4300",
  },
  "2018-06-30": {
    "date": "2018-06-30",
    "period": "+1q",
    "growth": "0.2930",
    "earningsEstimateAvg": "2.1600",
    "earningsEstimateLow": "1.8000",
  },

我已经将字典定义为一个变量(“市场数据”),我想提取相应的序列(每次都是日期)

例如,增长变量包括: ("2019-09-30" .1540, "2018-09-30" .2800, “2018-06-30.2930)

平均收益估计包括: ("2019-09-30" 13.2600, "2018-09-30" 2.6500, “2018-06-30 2.1600)

我试过使用DataFrame,但没有获得正确的格式

第二步,我希望能够调用该列表(其中将包含3个以上的日期)并返回两个用户定义日期之间的所有增长率

非常感谢你们的帮助,非常感谢!:)

最大


Tags: 数据dataframe列表date字典定义市场格式
2条回答

首先,我会检查一下你的字典,它保存了所有的数据并将其展平:

my_array = [data for key, data in my_dictionary.items()]

然后我会创建您需要的词典,例如:

growth = {x['date']: x['growth'] for x in my_array}

如果需要词典列表:

growth = [{"date": x['date'], "growth": x['growth']} for x in my_array]

试试这个:

df = pd.DataFrame(list(market_data.values()))

输出:

         date earningsEstimateAvg earningsEstimateLow  growth period
0  2019-09-30             13.2600             11.5200  0.1540    +1y
1  2018-09-30              2.6500              2.4300  0.2800    +1q
2  2018-06-30              2.1600              1.8000  0.2930    +1q

要获取所需格式的数据,可以使用以下方法:

df[['date', 'growth']].set_index('date').to_dict()
df[['date', 'earningsEstimateAvg']].set_index('date').to_dict()

输出:

{'growth': {'2018-06-30': '0.2930',
            '2018-09-30': '0.2800',
            '2019-09-30': '0.1540'}}

{'earningsEstimateAvg': {'2018-06-30': '2.1600',
                         '2018-09-30': '2.6500',
                         '2019-09-30': '13.2600'}}

要获取两个日期之间的数据:

mask = (df['date'] > start_date) & (df['date'] <= end_date)
df.loc[mask]

相关问题 更多 >