我目前是来自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']]
关于如何遍历我的嵌套列表然后使用我的字典键将我的字典中的相应值链接到我的列表中的所有键的列表中的任何建议?
答案 0 :(得分:0)
您想在merge
字段的两个数据框上执行region
。 pandas
库让这很容易(也很有效)。代码如下所示(您的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']
}可能更安全