当前位置: 首页 > 面试题库 >

熊猫离开加入并更新现有专栏

翟浩穰
2023-03-14
问题内容

我是熊猫的新手,似乎无法将此功能与merge函数配合使用:

>>> left       >>> right
   a  b   c       a  c   d 
0  1  4   9    0  1  7  13
1  2  5  10    1  2  8  14
2  3  6  11    2  3  9  15
3  4  7  12

在列a左连接时,我想通过JOINED KEYS更新公共列。请注意,c列中的最后一个值来自LEFT表,因为没有匹配项。

>>> final       
   a  b   c   d 
0  1  4   7   13
1  2  5   8   14
2  3  6   9   15
3  4  7   12  NAN

如何使用Pandas合并功能执行此操作?谢谢。


问题答案:

一种方法是将a列设置为索引update

In [11]: left_a = left.set_index('a')

In [12]: right_a = right.set_index('a')

注意:update仅执行左联接(不合并),因此,除了set_index之外,还需要包括中不存在的其他列left_a

In [13]: res = left_a.reindex(columns=left_a.columns.union(right_a.columns))

In [14]: res.update(right_a)

In [15]: res.reset_index(inplace=True)

In [16]: res
Out[16]:
   a   b   c   d
0  1   4   7  13
1  2   5   8  14
2  3   6   9  15
3  4   7  12 NaN


 类似资料:
  • 我刚接触熊猫,似乎无法使用合并功能: 对于列a上的左连接,我想通过连接键更新公共列。注:c列中的最后一个值来自左表,因为不存在匹配项。 我应该如何使用Pandas merge函数来实现这一点?非常感谢。

  • 问题内容: 我有一个数据框,其中的一列作为字典。我想将其解包成多列(即,代码,金额为以下Raw列格式的单独列)。以下代码曾经与pandas v0.22(现在是(0.23))一起工作,给出了索引错误: 我在Google / Stack溢出中搜索了数小时,之前提出的其他解决方案均无法正常工作。 原始列格式: 有没有人有什么建议? 谢谢 问题答案: 设定 与 确保先 和 相同的想法,但跳过

  • 问题内容: 我想对具有日期时间索引的数据框执行联接/合并/追加操作。 假设我有,我想添加它。 可以具有更少或更多的列,并且索引重叠。对于索引匹配的所有行,如果具有与相同的列,我希望使用的值覆盖的值。 如何获得理想的结果? 问题答案: 如何:? 请注意,它从不与重叠的索引中获取值。如果这不能完全满足您的要求,我将愿意改进此功能/为其添加选项。

  • 问题内容: 我在加入熊猫方面遇到问题,并且试图找出问题所在。假设我有一个x: 我应该能够通过简单的连接命令在y = x上将y与索引上的y联接,除了同名具有+2。 我希望决赛对双方都有1941个非值。我也尝试过合并,但是我有同样的问题。 我以为正确的答案是pandas.concat([x,y]),但这也不符合我的预期。 编辑:如果您在加入方面遇到问题,请阅读下面的韦斯答案。我有一个重复的时间戳。 问

  • 问题内容: 我正在做一些地理编码工作,我曾用它来屏幕刮取位置地址所需的xy坐标,我将xls文件导入了panda数据框,并希望使用显式循环来更新没有xy坐标的行,例如下面: 我已经阅读了为什么在遍历熊猫DataFrame之后该功能不能“使用”?并且完全意识到,iterrow仅提供给我们一个视图,而不是一个供编辑的副本,但是如果我真的要逐行更新值怎么办?是否可行? 问题答案: 您从中获得的行是不再连接

  • 我的数据记录如下所示 我想在forloop中向我的数据表添加新行(不是循环现有的数据表) 但这种方法行不通。如何向现有数据目录添加新行?