如何连接具有相同列的数据集并使用 Pandas 选择一个?
通常,在数据操作操作中,由于数据来自不同的来源,可能需要将两个数据集合并为一个。在本文中,让我们讨论如何在Python中连接具有相同列的数据集。
使用熊猫 concat()
Python有一个名为 pandas 的包,它提供了一个名为concat的函数,可以帮助我们将两个数据集合并为一个。
Syntax:
pandas.concat(objs, axis=0, join=’outer’, ignore_index=False, keys=None)
Parameters:
- objs -sequence of Series or DataFrame objects
- axis – 0 – index’, 1 – columns
- join – inner, default – outer
- ignore_index – bool, default False. If True the dataframe must not contain an index
用于演示的数据集可在此处下载 data_1 和 data_2。
例子:
在这里,我们将 ignore_index 设置为 False,这意味着 concat函数将忽略各个数据集的原始索引并创建一个新索引。
Python3
import pandas as pd
# read the datasets
df1 = pd.read_csv(r"your_path/data_1.csv")
df2 = pd.read_csv(r"your_path/data_2.csv")
# print the datasets
print(df1.head())
print(df2.head())
concat_data = pd.concat([df1, df2], ignore_index=True)
print(concat_data)
Python3
merge_data = pd.merge(df1, df2, how='outer')
print(merge_data)
输出:
使用 Pandas 合并()
Pandas 提供了一个函数,merge(),作为 DataFrame 对象之间所有标准数据库连接操作的入口点。有四种基本方法来处理连接(内、左、右和外),具体取决于哪些行必须保留其数据。
Syntax: pandas.merge(left, right, how)
Parameters:
- left – dataframe (left reference)
- right – dataframe (right reference)
- how – {‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’}, default ‘inner’
例子:
与 concat()函数类似的是 merge()函数,我们可以在其中连接具有相同列的数据集。在合并函数中,我们可以传递数据集并使用外连接模式来连接具有相同列的数据集,如图所示,
Python3
merge_data = pd.merge(df1, df2, how='outer')
print(merge_data)
输出: