如何计算字典列表中第1和第6个键之间的百分比差异?

时间:2016-09-20 07:13:20

标签: python list pandas dictionary

我有一个pandas df列,每个公司名称都有一个字典列表。如下所示:

company  |  growth_scores
comp xyz | [{u'score': u'198', u'recorded_at': u'2016-09},{u'score': u'190', u'recorded_at': u'2016-08} 

我理解如何提取密钥,并且我熟悉pd.apply方法,但我似乎无法将任何逐行扫描并执行计算的内容拼凑在一起。最终,我需要执行计算并将结果存储在每个公司的新列中。

输出应如下所示:

company  |  growth_score_diff
comp xyz |  10%

在这里会有一些指导!

1 个答案:

答案 0 :(得分:1)

假设您有以下DataFrame:

df = pd.DataFrame.from_dict({'company': 'Pandology', 'metrics': [[{'score': 10}, {'score': 20}, {'score': 35}]]})

看起来像这样:

enter image description here

要计算总得分,您可以mapmetrics列添加到名为score_total的新列。要执行实际计算,您需要定义一个函数calculate_score,它将一行metrics数据作为输入并输出总分值。 (在这种情况下,它只是一个简单的和计算)

def calculate_score(metrics):
    total_score = 0
    for metric in metrics:
        total_score += metric['score']
    return total_score                

df['score_total'] = df['metrics'].map(calculate_score)

现在您有一个包含结果的新列:

enter image description here