【发布时间】:2019-01-15 10:47:36
【问题描述】:
我有一个DataFrame,其中包含 Alpha 2 国家/地区代码(UK、ES、SL 等),我需要这些作为国家/地区名称。我创建了第二个数据框,其中一列中包含所有 Alpha 2 国家/地区代码,另一列中包含相应的名称。
我正在尝试比较这两列,然后使用索引来创建新列。但是,我在不使用循环的情况下努力做到这一点。我觉得有一种更有效的方法可以做到这一点而无需循环?
我尝试过使用 for 循环,迭代:
cube_data = pd.DataFrame({'Country Code':['UK','ES','SL']})
alpha2 = pd.DataFrame({'Code':['ES','GH','UK','SL'],
'Name':['Spain','Ghana','United Kingdom','Sierra Leone']})
cube_data
Country Code
0 UK
1 ES
2 SL
alpha2
Code Name
0 ES Spain
1 GH Ghana
2 UK United Kingdom
3 SL Sierra Leone
我使用 for 循环遍历列,当在 alpha2['Code'] 中找到来自 cube_data 的代码时,索引用于创建一个新系列,其中 alpha['Name'] 在对应于 cube_data 的正确位置.
最终结果是:
cube_data
Country Code Name
0 UK United Kingdom
1 ES Spain
2 SL Sierra Leone
肯定有更好的方法来做到这一点而无需循环吗?我看过series.isin() 和series.map() 但这些似乎不能提供我需要的结果。
这可以不用循环来完成吗?
【问题讨论】: