为了账号安全,请及时绑定邮箱和手机立即绑定

字典列表想要获取每个值并将它们放入单独的列表中?

字典列表想要获取每个值并将它们放入单独的列表中?

拉丁的传说 2021-09-14 16:36:37
我的代码输出如下:[{'Total Population:': 4585, 'Total Water Ice Cover': 2.848142234497044, 'Total Developed': 17.205368316575324, 'Total Barren Land': 0.22439908514219134, 'Total Forest': 34.40642126612868}, {'Total Population:': 4751, 'Total Water Ice Cover': 1.047783534830167, 'Total Developed': 37.27115716753022, 'Total Barren Land': 0.11514104778353484, 'Total Forest': 19.11341393206678}, {'Total Population:': 3214, 'Total Water Ice Cover': 0.09166603009701321, 'Total Developed': 23.50469788404247, 'Total Barren Land': 0.2597204186082041, 'Total Forest': 20.418608204109695}, {'Total Population:': 5005, 'Total Water Ice Cover': 0.0, 'Total Developed': 66.37545713124746, 'Total Barren Land': 0.0, 'Total Forest': 10.68671271840715},...]我希望能够做的是获取“总人口”的所有值并将其存储在一个列表中。然后获取所有“总水冰盖”并将其存储在另一个列表中,依此类推。有了这样的数据结构,如何提取这些值并将它们存储到单独的列表中?
查看完整描述

3 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

如果您的目标是计算 Pearson 的相关性,您应该使用pandas它。


假设您的原始字典列表存储在一个名为output. 您可以pandas使用以下方法轻松将其转换为DataFrame:


import pandas as pd

df = pd.DataFrame(output)

print(df)

#   Total Barren Land  Total Developed  Total Forest  Total Population:  Total Water Ice Cover

#0           0.224399        17.205368     34.406421               4585               2.848142 

#1           0.115141        37.271157     19.113414               4751               1.047784 

#2           0.259720        23.504698     20.418608               3214               0.091666   

#3           0.000000        66.375457     10.686713               5005               1.047784 

现在您可以轻松生成相关矩阵:


# this is just to make the output print nicer

pd.set_option("precision",4)  # only show 4 digits


# remove 'Total ' from column names to make printing smaller

df.rename(columns=lambda x: x.replace("Total ", ""), inplace=True)  


corr = df.corr(method="pearson")

print(corr)

#                 Barren Land  Developed  Forest  Population:  Water Ice Cover

#Barren Land           1.0000    -0.9579  0.7361      -0.7772           0.4001

#Developed            -0.9579     1.0000 -0.8693       0.5736          -0.6194

#Forest                0.7361    -0.8693  1.0000      -0.1575           0.9114

#Population:          -0.7772     0.5736 -0.1575       1.0000           0.2612

#Water Ice Cover       0.4001    -0.6194  0.9114       0.2612           1.0000

现在您可以通过键访问各个相关性:


print(corr.loc["Forest", "Water Ice Cover"])

#0.91135717479534217


查看完整回答
反对 回复 2021-09-14
?
烙印99

TA贡献1829条经验 获得超13个赞

我想你可以使用类似的东西:


d = [{'Total Population:': 4585, 'Total Water Ice Cover': 2.848142234497044, 'Total Developed': 17.205368316575324, 'Total Barren Land': 0.22439908514219134, 'Total Forest': 34.40642126612868},

 {'Total Population:': 4751, 'Total Water Ice Cover': 1.047783534830167, 'Total Developed': 37.27115716753022, 'Total Barren Land': 0.11514104778353484, 'Total Forest': 19.11341393206678},

 {'Total Population:': 3214, 'Total Water Ice Cover': 0.09166603009701321, 'Total Developed': 23.50469788404247, 'Total Barren Land': 0.2597204186082041, 'Total Forest': 20.418608204109695},

 {'Total Population:': 5005, 'Total Water Ice Cover': 0.0, 'Total Developed': 66.37545713124746, 'Total Barren Land': 0.0, 'Total Forest': 10.68671271840715}]


f = {}

for l in d:

    for k, v in l.items():

        if not k in f:

            f[k] = []

        f[k].append(v)

print(f)

{'Total Population:': [4585, 4751, 3214, 5005], 'Total Water Ice Cover': [2.848142234497044, 1.047783534830167, 0.09166603009701321, 0.0], 'Total Developed': [17.205368316575324, 37.27115716753022, 23.50469788404247, 66.37545713124746], 'Total Barren Land': [0.22439908514219134, 0.11514104778353484, 0.2597204186082041, 0.0], 'Total Forest': [34.40642126612868, 19.11341393206678, 20.418608204109695, 10.68671271840715]}


查看完整回答
反对 回复 2021-09-14
  • 3 回答
  • 0 关注
  • 270 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号