如果我有不同的数据框Pandas
,我该如何加入它们?
例如我创建了三个DataFrame
:
import pandas as pd
import numpy as np
df_1 = pd.DataFrame({"fruta": ["manzana", "pera", "platano", "naranja", "aguacate"],
"precio": [0.20, 0.45, 0.15, 0.12, 0.62]})
df_2 = pd.DataFrame({"stock": [10, 20, 25, 12, 40]})
df_3 = pd.DataFrame({"ventas_totales":[3, 5, 2, 3, 6],
"ingresos_ventas": [120, 110, 64,44, 147]})
有没有办法将它们连接(加入)Pandas
,还是不可能,我应该使用循环for
?
如果他们有一个标识符(ID) ,是否 可以根据列加入他们SQL
?
Pandas 有多种方法可以加入数据框,这取决于您想要做什么,其中一种对您来说会更好。我现在将使用问题中的示例解释两种主要方式及其结果。
连接
如果你想加入不同的DataFrame,并且它们的顺序相同(也就是说,如果DataFrame 1的第1行的数据对应DataFrame 2和DataFrame 3的数据),可以这样做:
离开:
axix=1
我们表明我们要按行连接它,如果我们把它axis=0
按列连接。优势:
.append()
缺点:
这种形式的同义词是:
结果是一样的,虽然你可以看到写起来更乏味
使用按 ID 合并
在这种情况下,我们将假设我们有一列具有标识每一行的 ID,并且它们是无序的,即 DataFrame 1 中第 1 行的 ID,我们可以在 DataFrame 的“X”行中找到它2.我放示例代码:
在这种情况下,我们不能使用
pandas.concat()
. 要加入数据框,我们可以使用与.merge()
函数完全相同的方法,pandas.merge()
它将允许我们选择要加入的列,以及加入的方式:离开:
使用参数
on=
,我们指示我们要加入的列的名称,并使用参数指示how=
与中相同的联合类型SQL
。inner
Pandas 支持,left
,right
outer`联合类型。如果我们想要制作
merge()
两个以上的 DataFrame,我们只需要链接方法:离开:
强调
merge()
我们可以建立不同类型的联合,以SQL
如果您知道如何在
Pandas
. 这是官方的 pandas 文档,如果您想进一步扩展并查看不同的参数: