熊猫留在原地

2023-11-30

我有一个大数据框df和一个小数据框df_right有 2 列a and b。我想做一个简单的左连接/查找a无需复制df.

我想出了这段代码,但我不确定它有多强大:

dtmp = pd.merge(df[['a']], df_right, on = 'a', how = "left")  #one col left join
df['b'] = dtmp['b'].values

我知道当有重复的键时它肯定会失败:pandas left join - 为什么有更多结果?

有更好的方法吗?

Related:

在 pandas 中外部合并两个数据框

DataFrame.merge() 中 copy=False 的确切缺点是什么?


你快到了。 有 4 种情况需要考虑:

  1. Both df and df_right do not有重复的键
  2. Only df has重复的键
  3. Only df_right has重复的键
  4. Both df and df_right have重复的键

您的代码在情况 3 和 4 中失败,因为合并扩展了行计数df。为了使其发挥作用,您需要选择要放入的信息df_right合并之前。这样做的目的是强制任何合并方案为情况 1 或情况 2。

例如,如果您希望保留每个重复键的“第一个”值df_right,以下代码适用于上述所有 4 种情况。

dtmp = pd.merge(df[['a']], df_right.drop_duplicates('a', keep='first'), on='a', how='left')
df['b'] = dtmp['b'].values

或者,如果列'b' of df_right由数值组成,您希望获得汇总统计数据:

dtmp = pd.merge(df[['a']], df_right.groupby('a').mean().reset_index(drop=False), on='a', how='left')
df['b'] = dtmp['b'].values
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

熊猫留在原地 的相关文章

随机推荐

  • 空传播替换空检查先验条件语句

    看到一个类似的问题 我想知道以下表达式是否 if attribute null attribute Description input 与以下零传播变体的行为 几乎 相同 if attribute Description input 到目前
  • 使用命名空间和共享内存字典时关闭管理器错误“AttributeError:'ForkAwareLocal'对象没有属性'连接'”

    我在尝试着 在进程之间共享数据帧 根据对该数据帧执行的计算 但不更改 更新共享字典 我正在使用一个multiprocessing Manager 创建一个dict在共享内存中 用于存储结果 和Namespace存储 共享我想要读取的数据框
  • 在 C# 中按键模拟按钮单击

    好的 我正在制作一个 Tic Tac Toe 游戏来帮助我学习 C 我正在尝试为其添加一些功能 因此我希望人们能够在计算机上使用数字键盘来模拟单击按钮 这是我所拥有的 但当我使用数字键盘时 按钮不会单击 你们中有人能看出原因吗 start
  • 可变参数模板复杂继承生成

    尝试了一下可变参数模板 看看可以用它们做什么 我发现自己想知道一些事情 假设我有一个类 它可以将其他几个类作为模板参数 每个类都有一个嵌套类 我们称之为nested class template
  • Nil 与预期的参数类型选择器不兼容

    在从 Swift 2 3 转换为 Swift 3 时 我收到以下代码行的错误 var contactButton UIBarButtonItem return self CustomRightItem icon nav nls contac
  • 如何避免插入重复记录

    我正在使用 Laravel 5 6 29 if HarmFlag where post id postId gt where harm id harm id gt get gt isEmpty HarmFlag create post id
  • htaccess - 如果末尾有问号,则剪掉问号

    有这么一段代码
  • 成功解析 SimpleXMLElement 与“false”的比较,返回“true”

    我在 simplexml 评估中遇到了一个非常尴尬且具体的问题 代码 simplexml simplexml load string xmlstring var dump simplexml var dump simplexml false
  • 刷新 div 从数据库检索信息而不刷新整个页面

    我想刷新divauto每 2 秒一次 无需重新加载页面 我该如何使用 jquery 执行此操作我确实尝试了一些解决方案 但它们不起作用 如果可以提供帮助那就太好了 对话 php
  • 何时正确使用 Task.Run 以及何时仅使用 async-await

    我想询问您对何时使用正确架构的看法Task Run 我在 WPF NET 4 5 中遇到了缓慢的 UI 应用程序 使用 Caliburn Micro 框架 基本上我正在做 非常简化的代码片段 public class PageViewMod
  • 打印传递变量名称的函数

    我最初的目标是创建一个函数来打印给定对象的类型和内存地址 为了尽可能通用 我还想包含变量名称 如下所示 gt gt gt a 10 gt gt gt print type addr a a int 0x13b8080 为此 我需要知道传递给
  • Unicode 命名的文件夹显示?在 wscript 提示符下

    我遇到 Unicode 命名文件夹的问题 当我将文件夹拖到脚本中时 它没有正确显示文件夹的路径 简单的 VBScript 这只是其中的一部分 Dim Wshso Set Wshso WScript CreateObject WScript
  • Python argparse:强制列表项唯一

    能够使用以下方式验证列表项choices servers下面很好 servers ApaServer BananServer GulServer SolServer RymdServer SkeppServer HavsServer Sov
  • Android 从顶部滑动抽屉?

    有什么办法可以让抽屉从上滑到下吗 我找到了一个简单的方法来做到这一点 您所要做的就是为slidingDrawer 内容和手柄设置180 的旋转 通过一个例子更容易理解 所以看看我做了什么 首先 我将向您展示我的旧 SlidingDrawer
  • 将可可粒放入可可中

    如何将笔尖加载到另一个窗口内 我尝试了 initWithWindowName if mmController NULL mmController mainMenu alloc initWithWindowNibName mainMenu m
  • 在 CasperJS 的表单之外使用选择

    我想选择一个条目进入选择 我如何使用 CasperJS 做到这一点 您需要了解的一些信息 我无法修改页面 我的任务只是编写测试 选择标记不包含在表单中 我无法使用document querySelector MY SELECT select
  • Angular 2 节点波本错误

    ERROR in node modules css loader sourceMap false importLoaders 1 node modules postcss loader lib ident postcss sourceMap
  • 去掉标签,但保留第一个

    例如我怎样才能保留第一个img标记但剥离所有其他的 来自 HTML 字符串 example p some text img src aimage jpg alt desc width 320 height 200 img src aimag
  • iPhone 上的 Lua

    我正在尝试在 iPhone 上运行时加载 Lua 脚本 有可能这样做吗 我该如何开始使用 Lua 我找不到东西 我唯一能找到的是这应该是可能的 但我想知道如何实现 查看科罗娜SDK
  • 熊猫留在原地

    我有一个大数据框df和一个小数据框df right有 2 列a and b 我想做一个简单的左连接 查找a无需复制df 我想出了这段代码 但我不确定它有多强大 dtmp pd merge df a df right on a how lef