📜  pandas concat 在一个数据帧中合并两个数据帧 - Python (1)

📅  最后修改于: 2023-12-03 14:45:02.273000             🧑  作者: Mango

以'pandas concat 在一个数据帧中合并两个数据帧 - Python '作主题

在数据分析和处理中,经常需要合并两个或多个数据集。Pandas提供了多种合并数据集的方法,其中concat方法是合并数据帧的一个好选择。concat方法可以将两个或多个数据帧在行或列方向上合并成一个。

如何使用concat方法

使用concat方法合并数据帧需要提供以下参数:

  • objs: 需要合并的数据帧列表
  • axis: 合并的方向,0表示按行合并,1表示按列合并
  • join: 对齐方式,inner表示取交集,outer表示取并集
  • ignore_index: 是否忽略原来数据帧的索引,True表示忽略,False表示保留
  • keys: 提供一个列表,用来标识每一个数据帧,当多个数据帧合并时,这个参数会成为最外层索引

下面我们就来看一个简单的例子:

import pandas as pd

df1 = pd.DataFrame({'ID': [1, 2, 3], 'Name': ['John', 'Mike', 'Lina']})
df2 = pd.DataFrame({'ID': [4, 5, 6], 'Name': ['Lucy', 'Tom', 'Jane']})

df = pd.concat([df1, df2], ignore_index=True)

print(df)

输出结果:

   ID  Name
0   1  John
1   2  Mike
2   3  Lina
3   4  Lucy
4   5   Tom
5   6  Jane

这个例子中,我们定义了两个数据帧df1和df2,然后使用concat方法将它们在行方向上合并成一个数据帧df,并把原来数据帧的索引重置了。

在一个数据帧中合并两个数据帧

除了将两个或多个数据帧合并成一个数据帧外,有时候我们还需要在一个数据帧中合并两个数据帧。

假设我们有以下数据帧:

df1 = pd.DataFrame({'ID': [1, 2, 3], 'Name': ['John', 'Mike', 'Lina'], 'Gender': ['Male', 'Male', 'Female']})
df2 = pd.DataFrame({'ID': [4, 5, 6], 'Name': ['Lucy', 'Tom', 'Jane'], 'Gender': ['Female', 'Male', 'Female']})
concat_df = pd.concat([df1, df2], ignore_index=True)

输出的结果为:

   ID  Name  Gender
0   1  John    Male
1   2  Mike    Male
2   3  Lina  Female
3   4  Lucy  Female
4   5   Tom    Male
5   6  Jane  Female

现在我们要在concat_df这个数据帧中添加一列Salary,我们可以使用如下代码:

concat_df['Salary'] = [1000, 2000, 3000, 4000, 5000, 6000]

最终得到的结果为:

   ID  Name  Gender  Salary
0   1  John    Male    1000
1   2  Mike    Male    2000
2   3  Lina  Female    3000
3   4  Lucy  Female    4000
4   5   Tom    Male    5000
5   6  Jane  Female    6000
总结

通过以上例子,我们可以看到concat方法简单易用,能够高效地合并两个或多个数据帧。在合并数据帧时,我们需要注意提供正确的参数来达到自己想要的合并方式。