使用 Pandas 合并、连接和连接 DataFrame


在本教程中,我们将学习如何使用 **Pandas** 库合并、连接和连接 **DataFrame**。我认为您已经熟悉 DataFrame 和 Pandas 库。让我们逐一看看这三种操作。

合并

我们有一个名为 **pandas.merge()** 的方法,它可以合并 DataFrame,类似于数据库的连接操作。请按照以下步骤获得所需的输出。**merge** 方法使用公共列进行合并操作。

  • 初始化 DataFrame。

  • 使用三个参数调用 **pandas.merge()** 方法:**DataFrame**、**how**(定义数据库连接操作)、**on**(DataFrame 的公共字段)。

示例

让我们看一个例子。

# importing the pandas library
import pandas
# creating dataframes
    dataframe_1 = pandas.DataFrame({"Common": ["A", "B", "C", "D", "E"],
   "Name": ["John", "Alice", "Emma", "Watson", "Harry"], "Age": [18, 19, 20, 21, 15]}) dataframe_2 =     pandas.DataFrame({"Common": ["A", "B", "C", "D", "E"], "Sport": ["Cricket", "Football", "Table     Tennis", "Badminton", "Chess"], "Movie": ["Jumanji", "Black Widow", "End Game", "Mr. Robot",          "Matrix"]})
# merging using merge method
# how = left or right or inner
new_df = pandas.merge(dataframe_1, dataframe_2, how="left", on="Common") # printing the resultant dataframe print(new_df)

输出

如果运行以上代码,您将得到以下结果。

Common Name   Age  Sport            Movie
0   A  John   18  Cricket         Jumanji
1   B  Alice  19  Football    Black Widow
2   C  Emma   20  Table Tennis   End Game
3   D  Watson 21  Badminton     Mr. Robot
4   E  Harry  15  Chess            Matrix

连接

与 **merge** 方法类似,我们有一个名为 **dataframe.join(dataframe)** 的方法用于连接 DataFrame。让我们看看将两个 DataFrame 连接成一个的步骤。join 方法使用 DataFrame 的 **索引**。

  • 初始化 DataFrame。

  • 编写语句 **dataframe_1.join**( **dataframe_2** ) 进行连接。

示例

让我们用代码示例来尝试一下。

# importing the pandas library
import pandas
# creating dataframes
   dataframe_1 = pandas.DataFrame({"Name": ["John", "Alice", "Emma", "Watson", "Harry"], "Age": [18,    19, 20, 21, 15]}, index = ["A", "B", "C", "D", "E"])dataframe_2 = pandas.DataFrame({"Sport":          ["Cricket", "Football", "Table Tennis", "Badminton", "Chess"], "Movie": ["Jumanji", "Black Widow",    "End Game", "Mr. Robot", "Matrix"]}, index = ["A", "B", "C", "D", "E"])
   # joining
   new_df = dataframe_1.join(dataframe_2)
# printing the new dataframe
print(new_df)

如果运行以上程序,您将得到以下输出

输出

     Name   Age   Sport           Movie
A    John   18   Cricket        Jumanji
B    Alice  19   Football   Black Widow
C    Emma   20   Table Tennis  End Game
D    Watson  21  Badminton    Mr. Robot
E    Harry   15   Chess          Matrix

连接

与 **merge 和 join** 方法类似,我们有一个名为 **pandas.concat(list->dataframes)** 的方法用于连接 DataFrame。让我们看看连接 DataFrame 的步骤。连接将 DataFrame 组合成一个。

  • 初始化 DataFrame。

  • 使用 pandas.concat([df_1, df_2, ..]) 连接 DataFrame。打印结果。

示例

让我们用代码示例来尝试一下。

# importing the pandas library
import pandas
   # creating dataframes dataframe_1 = pandas.DataFrame({"Name":                                        ["John","Alice","Emma","Watson","Harry"], "Age": [18, 19, 20, 21, 15]}, index = ["A", "B", "C",       "D", "E"]) dataframe_2 = pandas.DataFrame({"Name": ["Wick", "Robert", "Elliot", "Baby",                "Cruise"], "Age": [22, 20, 45, 15, 42]}, index = ["F", "G", "H", "I", "J"])
   # concatenating -> you can pass any number of new_df = pandas.concat([dataframe_1, dataframe_2])
# printing the new dataframe
print(new_df)

输出

如果运行以上程序,您将得到以下输出。

   Name    Age
A  John     18
B Alice     19
C Emma      20
D Watson    21
E Harry     15
F Wick      22
G Robert    20
H Elliot    45
I Baby      15
J Cruise    42

结论

如果您在本教程中有任何疑问,请在评论区提出。

更新于: 2020年2月12日

1K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告