python-3.x - 如何通过在另一个数据框中根据索引查找值并将值设置为特定的行和列来设置值?
问题描述
我有两个看起来像这样的df:
df1:
site
0 a.com
1 b.com
2 c.com
df2:
site
0 a.com
我能够根据这个逻辑提取索引:
idx = df2.site.isin(df1.site).index
我可以像这样选择要插入到列中的值:
df1.site.loc[idx]
但是,当我去创建新字段并选择要插入的行/列时,插入的值是“nan”。我可以这样做: df2.site.loc[[0]] = df1.site.loc[idx]
如何从以下位置插入字符串:
df1.site.loc[idx]
通过选择我要放入的行进入另一个数据框中的现有列?
解决方案
我相信你需要DataFrame.loc
,但因为需要设置一个值是必要的,通过索引选择第一个值将 idx 转换为标量:
idx = df2.site.isin(df1.site).index[0]
df2.loc[0, 'site'] = df1.loc[idx, 'site']
如果没有匹配值,则更通用的解决方案有效 - 添加了默认值:
idx = df2.site.isin(df1.site).index
df2.loc[0, 'site'] = next(iter(df1.loc[idx, 'site']), 'no match')
也许可以merge
像这样使用:
df2 = df2.merge(df1, on='site', how='left')
推荐阅读
- python - NameError:名称doohickey未定义
- ios - 更新firebase路径(如果存在)
- java - Java、Maven Jar 文件版本控制部分
- cypress - 柏树,虽然循环可见元素,但也获得隐藏的断言
- apache-spark - 在进行 foreach 时如何保证 Spark 数据集中的排序
- javascript - 来自 WebView (Android) 的 AJAX 请求
- python - 如何在 Python 中将收入和就业之间的交互项添加到这个多元线性回归模型中?
- html - 引导导航栏切换器
- python - Flask:谷歌云功能和谷歌网络部署的区别
- .net-core - 在 azure devops 版本上安装并运行自定义 dotnet 工具