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

在Pandas中加入和合并有什么区别?

盖和洽
2023-03-14
问题内容

假设我有两个这样的DataFrame:

left = pd.DataFrame({'key1': ['foo', 'bar'], 'lval': [1, 2]})

right = pd.DataFrame({'key2': ['foo', 'bar'], 'rval': [4, 5]})

我想合并它们,所以我尝试这样的事情:

pd.merge(left, right, left_on='key1', right_on='key2')

我很开心

    key1    lval    key2    rval
0   foo     1       foo     4
1   bar     2       bar     5

但是我正在尝试使用join方法,我被认为这是非常相似的。

left.join(right, on=['key1', 'key2'])

我得到这个:

//anaconda/lib/python2.7/site-packages/pandas/tools/merge.pyc in _validate_specification(self)
    406             if self.right_index:
    407                 if not ((len(self.left_on) == self.right.index.nlevels)):
--> 408                     raise AssertionError()
    409                 self.right_on = [None] * n
    410         elif self.right_on is not None:

AssertionError:

我想念什么?


问题答案:

我总是join索引上使用:

import pandas as pd
left = pd.DataFrame({'key': ['foo', 'bar'], 'val': [1, 2]}).set_index('key')
right = pd.DataFrame({'key': ['foo', 'bar'], 'val': [4, 5]}).set_index('key')
left.join(right, lsuffix='_l', rsuffix='_r')

     val_l  val_r
key            
foo      1      4
bar      2      5

通过merge在以下各列上使用,可以具有相同的功能:

left = pd.DataFrame({'key': ['foo', 'bar'], 'val': [1, 2]})
right = pd.DataFrame({'key': ['foo', 'bar'], 'val': [4, 5]})
left.merge(right, on=('key'), suffixes=('_l', '_r'))

   key  val_l  val_r
0  foo      1      4
1  bar      2      5


 类似资料:
  • 这两个子句的主要区别是参数传递。对于< code>IFNULL是两个参数,对于< code>COALESCE是多个参数。所以除此之外,这两者之间还有其他区别吗? 它在MS SQL中有何不同?

  • 我理解(用于容器)和(用于图像)之间的区别。但最终,通过save或export生成的tarball应该用作图像。 那么为什么有两个命令来从tarball生成图像呢?

  • 什么是区别之间的和?

  • 问题内容: 我不知道熊猫和功能之间的区别。 以以下示例为例:我加载数据集,执行,定义一个简单函数,然后输入user或。 如您所见,在使用和之后,函数中的print语句得到相同的输出。另一方面,结果是不同的。这是为什么? 使用: 使用 问题答案: 将功能应用于每个组(您的)。您的函数返回1,因此对于3个组,您最终都将获得1值。 汇总 每个 组的 每个列(功能) ,因此最终每个组的每个列都有一个值。

  • 问题内容: 他们似乎都 非常 相似,我很好奇哪个软件包对财务数据分析更有利。 问题答案: 熊猫提供了基于NumPy构建的高级数据处理工具。NumPy本身是一个相当底层的工具,类似于MATLAB。另一方面,pandas提供了丰富的时间序列功能,数据对齐,对NA友好的统计信息,groupby,合并和联接方法以及许多其他便利。近年来,它在金融应用中变得非常流行。我的下一本书将专门讨论使用熊猫进行财务数据

  • 为什么并行流使用合并器类,而顺序流将使用累加器?为什么并行流不使用累加器? 以下是上述代码的输出: 那么,为什么顺序流使用累加器,并行流使用组合器?并行流不能使用累加器吗?