当我们想要串联我们的DataFrame时,我们可以通过垂直或并排堆叠它们来相互添加。组合这些DataFrame的另一种方法是在每个数据集中使用包含公用值的列。使用公共字段组合DataFrame的方法称为" join"。我们用于组合DataFrame的方法是 join()方法。包含公用值的列称为" join key" 。
当一个DataFrame是一个查找表,其中包含添加到另一个DataFrame中的其他数据时,join()方法通常很有用。这是一种方便的方法,可以将两个索引不同的DataFrame的列合并为一个DataFrame。
为了确定适当的连接键(join keys),首先,我们必须定义在DataFrame之间共享的必填字段。这两个DataFrame都由名称相同且包含相同数据的列组成。
内部联接可以定义为最常用的联接。基本上,其主要任务是基于连接键将两个DataFrame组合在一起并返回一个新的DataFrame。返回的DataFrame仅包含两个原始DataFrame中具有匹配值的选定行。
如果我们想在DataFrame中添加一些信息而不丢失任何数据,我们可以简单地通过称为" left outer join"或" left join"。
像内部联接(inner join)一样,左联接也使用联接键来组合两个DataFrame,但是与内部联接不同的是,左联接返回左DataFrame的所有行,即使那些联接键不包括右DataFrame中值的行也是如此。
DataFrame.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)
other - 它是指DataFrame或Series。
在这种情况下,索引应类似于列之一。如果传递了Series,则必须设置named属性,以将其用作结果联接的DataFrame中的列名。
on - 是一个可选参数,用于引用类似数组(array-like)或 str 的值。
how - 它是指" left"," right"," outer"," inner"值,主要用于处理两个对象的操作。 how的默认值是left。
lsuffix - 它是指具有默认值""的字符串对象。它使用左框架重叠列中的后缀。
rsuffix - 它是一个字符串值,其默认值为""。它使用右框架重叠列中的后缀。
sort - 它由一个布尔值组成,该布尔值按连接键按字典顺序对结果DataFrame进行排序。如果我们传递False值,则联接键的顺序主要取决于联接类型,即how。
示例1:下面的示例演示 join()函数的工作。
import pandas as pd info = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3', 'K4', 'K5'], 'A': ['A0', 'A1', 'A2', 'A3', 'A4', 'A5']}) x = pd.DataFrame({'key': ['K0', 'K1', 'K2'], 'B': ['B0', 'B1', 'B2']}) info.join(x, lsuffix='_caller', rsuffix='_x') info.set_index('key').join(x.set_index('key')) info.join(x.set_index('key'), on='key')
输出:
key A B 0 K0 A0 B0 1 K1 A1 B1 2 K2 A2 B2 3 K3 A3 NaN 4 K4 A4 NaN 5 K5 A5 NaN
示例2 :下面的示例将两个MultiIndex结合在一起:
import pandas as pd leftindex = pd.MultiIndex.from_product([list('xyz'), list('pq'), [1, 2]], names=['xyz', 'pq', 'num']) left = pd.DataFrame({'value': range(12)}, index=leftindex) left
输出:
value xyz pq num x p 1 0 2 1 q 1 2 2 3 y p 1 4 2 5 q 1 6 2 7 z p 1 8 2 9 q 1 10 2 11
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)