📜  python结合并排数据帧 - Python(1)

📅  最后修改于: 2023-12-03 15:19:35.794000             🧑  作者: Mango

Python结合并排数据帧

Python是一种功能强大的语言,以其易于学习、简单且干净的语法而闻名。Python可以用于几乎任何领域,包括数据科学和数据分析。在这两个领域中,使用pandas库的数据帧是非常常见的,数据帧是指由多个列组成的二维表格。

在实际应用程序中,往往需要将两个或多个数据帧合并并排序。在这个介绍中,我们将讨论如何使用Pandas库来实现这个目标。

合并数据帧

使用Pandas库,我们可以使用merge()函数来合并两个数据帧。但是,在merge()函数上使用的参数和选项因具体应用而异。让我们探讨一些常用的情况:

1.使用共同的列

在两个数据框中使用共同列的合并是最简单的任务。我们将使用merge()函数并指定on参数以使这种类型的合并。考虑以下数据帧:

import pandas as pd
  
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
                   'value': [1, 2, 3, 4]})
  
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
                   'value': [5, 6, 7, 8]})

现在,使用on参数合并数据帧,我们可以按以下方式执行:

merged_df = pd.merge(df1, df2, on='key')
print(merged_df)

结果将会是这个数据帧:

  key  value_x  value_y
0   B        2        5
1   D        4        6
2.在不同的列上使用属性

在某些情况下,两个表中具有相同名称的列将不起作用。这是因为两个列中的值可能不相同。在这种情况下,我们可以使用left_onright_on参数来指定用于合并每个数据帧的列。

让我们考虑以下数据帧:

import pandas as pd
  
df1 = pd.DataFrame({'key1': ['A', 'B', 'C', 'D'],
                   'value': [1, 2, 3, 4]})
  
df2 = pd.DataFrame({'key2': ['B', 'D', 'E', 'F'],
                   'value': [5, 6, 7, 8]})

现在,我们可以使用left_onright_on合并它们。我们需要像这样调用merge()函数:

merged_df = pd.merge(df1, df2, left_on='key1', right_on='key2')
print(merged_df)

结果将是这个数据表:

  key1  value_x key2  value_y
0    B        2    B        5
1    D        4    D        6
3.合并多个列

在某些情况下,我们可能需要在多个列上执行合并。在Pandas中,我们可以将多个列名称的列表作为on参数传递。例如:

merged_df = pd.merge(df1, df2, on=['key1', 'key2'])

这将基于两个列的值合并两个数据帧。

排序数据帧

要使用Pandas对数据帧进行排序,我们可以使用sort_values()函数。以下是一些示例:

1.按列对数据帧进行排序

按列对数据帧进行排序是最常见的要求之一。在Pandas中,我们可以使用sort_values函数,并指定需要排序的列名称。例如,如果我们按值对以下数据帧进行排序:

import pandas as pd
  
df = pd.DataFrame({'name': ['John', 'Mike', 'Cynthia', 'Kelly'],
                   'age': [22, 29, 28, 25]})
  
sorted_df = df.sort_values('age')
print(sorted_df)

结果将会是这样的:

     name  age
0    John   22
3   Kelly   25
2  Cynthia   28
1    Mike   29
2.按多列排序

有时,您可能需要按多个列对数据帧进行排序。在Pandas中,我们可以将需要排序的列名称列表作为参数传递。例如:

sorted_df = df.sort_values(['name', 'age'])

通过上述方法进行排序后数据帧如下:

     name  age
2  Cynthia   28
0    John   22
3   Kelly   25
1    Mike   29

最后,合并并排序数据帧是数据科学和数据分析工作中的常见任务之一。Pandas提供了许多函数和选项,使得实现这个目标变得非常容易,大大提高了开发人员的工作效率。