【问题标题】:How to access specific Dataframe rows with dictionary?如何使用字典访问特定的 Dataframe 行?
【发布时间】:2019-07-20 10:38:17
【问题描述】:

我正在尝试访问数据框中的特定行并将这些行相加。特定行的索引点保存在字典中。

现在我正在尝试使用 for 循环中的字典访问这些行以总结这些值。

GHG_names = ['CO2', 'CH4', 'N2O']
GHG_gwp = [1.,28.,265.]
GHG = {}

for j,ghg in enumerate(GHG_names):
    GHG[ghg] = {'GWP': GHG_gwp[j], 'B_index':[]}
    for i,e in enumerate(B_Matrix.index):
        if e.find(ghg) != -1:
            GHG[ghg]['B_index'].append(i)

有了这个我得到以下字典:

{'CO2': {'GWP': 1.0, 'B_index': [23, 92, 93, 427, 437, 438]}, 'CH4': {'GWP': 28.0, 'B_index': [24, 67, 68, 69, 70, 71, 72, 73, 74, 426, 435]}, 'N2O': {'GWP': 265.0, 'B_index': [25, 429]}}

我正在尝试访问矩阵中的这些行:

GHG_names = ['CO2', 'CH4', 'N2O']
GHG_gwp = [1.,28.,265.]
GHG = {}

for j,ghg in enumerate(GHG_names):
    GHG[ghg] = {'GWP': GHG_gwp[j], 'B_index':[]}
    for i,e in enumerate(B_Matrix.index):
        if e.find(ghg) != -1:
            GHG[ghg]['B_index'].append(i)
    print(B_Matrix[GHG[ghg]['B_index'], 'Total'])

我尝试了几种不同的变体,但都不起作用。

我的目标是访问这些索引号并将它们汇总为每种温室气体(CO2、CH4、NO2) 非常感谢!

【问题讨论】:

  • 你的意思是sum([23, 92, 93, 427, 437, 438]) 代表CO2 等等?

标签: python dataframe dictionary


【解决方案1】:

您可以使用它们的键访问字典条目,例如

print(GHG["CO2"]["B_index"])
#[23, 92, 93, 427, 437, 438]

遍历名称列表以系统地访问所有条目并总结它们的单个索引

for ghg_name in GHG_names:
    _sum=0
    for idx in (GHG[ghg_name]["B_index"]):
        _sum+=idx
    print(ghg_name, _sum)

这会为您提供以下输出:

CO2 1510
CH4 1449
N2O 454

【讨论】:

    猜你喜欢
    • 2018-07-05
    • 2019-12-09
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    相关资源
    最近更新 更多