python - Pandas 中的索引匹配?
问题描述
我正在尝试根据它们的行键和列键匹配 x 值。在 excel 中,我使用 INDEX & MATCH 来获取正确的值,但我在 Pandas 中也很难做到这一点。
例子:
我想将突出显示的值(保存在 df2 中)添加到我的 df['Cost'] 列。
我有 df['Weight'] & df['Country'] 作为键,但我不知道如何使用它们在 df2 中查找突出显示的值。
如何将黄色值提取到 df3['Postage'] 中,然后我可以将其添加到我的 df['Cost'] 列中?
我希望这是有道理的。让我知道我应该提供更多信息。
编辑 - 更多信息(抱歉,我不知道如何从 Jupyter 复制输出):
当我运行 [93] 时,出现以下错误:
ValueError: Row labels must have same size as column labels
谢谢!
解决方案
1.75
简单地获得突出显示的值
df2.loc[df2['Country']=='B', 3]
因此,概括上述内容并使用来自的国家权重密钥对df1
:
cost = []
for i in range(df1.shape[0]):
country = df1.loc[i, 'Country']
weight = df1.loc[i, 'Weight']
cost.append(df2.loc[df2['Country']==country, weight]
df1['Cost'] = cost
或者更好:
df1['Cost'] = df1.apply(lambda x: df2.loc[df2['Country']==x['Country'], x['Weight'], axis=1)
推荐阅读
- python - 使用 @login_required 装饰视图会使 POST 请求失败
- solr - 升级到 solr 6.6.5 后,如何在创建文档时修复“IntPointField”错误?
- android - Resources$NotFoundException:仅在 Splash Background Samsung 8.0.0 设备上
- android - 如何从 apk 文件中删除权限?
- excel-formula - 将值复制并粘贴到另一个工作表,excel宏
- python - seaborn scatterplot datetime xaxis too wide
- d - Dlang 中的作用域函数是什么?
- scheme - 嵌套分隔的延续转换
- excel - 评估频率公式的中间步骤
- ruby-on-rails-4 - Rail 4:如何删除所有带有连接结果的查询