按字典键

时间:2018-05-07 03:54:02

标签: python list dictionary nested kaggle

我目前是来自Kiva Kaggle比赛的这些数据集:https://www.kaggle.com/kiva/data-science-for-good-kiva-crowdfunding/data

我想将浮动'MPI'值(一个'多维贫困指数')与每个小额贷款的相应地理区域联系起来。

  • 在一个数据集kiva_mpi_region_locations.csv中,每个区域都有一个与之关联的MPI值。
  • 但是,在数据集kiva_loans.csv中,每个贷款都被赋予“区域”,数据通常在同一个单元格中有逗号(,)分隔的多个值。

['kiva_loans.csv'/贷款数据示例](注意,不同的贷款可以来自同一地区,因此在这种情况下,区域是外键但不是主键):

Loan #: 653338  
region: Tanjay, Negros Oriental 

[kiva_mpi_region_locations.csv /区域MPI值示例](注意,每个区域只有一个MPI作为主键区域):

region: Badakhshan

MPI: 0.387

到目前为止我的代码:

RegionMPI = dict(zip(dfLocations.region, dfLocations.MPI))

{'Badakhshan': 0.387,
 'Badghis': 0.466,
 'Baghlan': 0.3,
 'Balkh': 0.301,
 'Bamyan': 0.325,
 'Daykundi': 0.313,
  etc}

LoanRegion = dfLoanTheme['region'].str.split(',').values.tolist()

 [['Lahore']
 nan,
 ['Dar es Salaam'],
 ['Liloy-Dela Paz'],
 ['Tanjay', ' Negros Oriental'],
 ['Ica'],
 nan,
['Lahore']]

关于如何遍历我的嵌套列表然后使用我的字典键将我的字典中的相应值链接到我的列表中的所有键的列表中的任何建议?

1 个答案:

答案 0 :(得分:0)

您想在merge字段的两个数据框上执行regionpandas库让这很容易(也很有效)。代码如下所示(您的CSV文件位于Kaggle注册墙后面):

import pandas as pd

loans = pd.read_csv('kiva_loans.csv')
mpi_regions = pd.read_csv('kiva_mpi_region_locations.csv')

df = loans.merge(mpi_regions, on='region')

你真的不想通过在基础Python中编写自己的连接代码来重新发明轮子,已经使用了pandas包。

(请注意,您假设region在不同国家/地区是唯一的。合并on=['country','region']}可能更安全

相关问题