pandas合并dataframe

pandas合并dataframe

pandas合并dataframe

在数据分析和处理中,经常会遇到需要合并不同dataframe的情况。pandas库提供了多种方法来实现这一目的,本文将详细介绍几种常见的dataframe合并方式,以及它们的应用场景和用法。

concat

concat方法可以沿着指定的轴(axis)将多个dataframe进行合并。比如,可以将多个行数相同的dataframe按行合并,也可以将多个列数相同的dataframe按列合并。下面是一个简单的示例:

import pandas as pd

data1 = {'A': [1, 2, 3], 'B': [4, 5, 6]}
data2 = {'A': [7, 8, 9], 'B': [10, 11, 12]}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

result = pd.concat([df1, df2])
print(result)

运行结果如下:

   A   B
0  1   4
1  2   5
2  3   6
0  7  10
1  8  11
2  9  12

可以看到,concat方法将两个dataframe按行合并了起来,并重新生成了索引。

merge

merge方法可以根据指定的列进行数据合并,默认是按照相同的列名进行合并。下面是一个示例:

data1 = {'key': ['K0', 'K1', 'K2', 'K3'],
         'A': ['A0', 'A1', 'A2', 'A3'],
         'B': ['B0', 'B1', 'B2', 'B3']}
df1 = pd.DataFrame(data1)

data2 = {'key': ['K0', 'K1', 'K2', 'K4'],
         'C': ['C0', 'C1', 'C2', 'C4'],
         'D': ['D0', 'D1', 'D2', 'D4']}
df2 = pd.DataFrame(data2)

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

运行结果如下:

  key   A   B   C   D
0  K0  A0  B0  C0  D0
1  K1  A1  B1  C1  D1
2  K2  A2  B2  C2  D2

可以看到,merge方法根据key列将两个dataframe进行了合并,只保留了两个dataframe中key列相同的行。

join

join方法可以根据索引(index)进行合并。默认情况下,join方法是按照两个dataframe的索引(index)进行合并。下面是一个示例:

data1 = {'A': [1, 2, 3],
         'B': [4, 5, 6]}
df1 = pd.DataFrame(data1, index=['a', 'b', 'c'])

data2 = {'C': [11, 12, 13],
         'D': [14, 15, 16]}
df2 = pd.DataFrame(data2, index=['a', 'b', 'd'])

result = df1.join(df2, how='inner')
print(result)

运行结果如下:

   A  B   C   D
a  1  4  11  14
b  2  5  12  15

可以看到,join方法根据索引(index)将两个dataframe进行了合并,只保留了两个dataframe中索引相同的行。

append

append方法用于在一个dataframe的末尾添加另一个dataframe。下面是一个示例:

data1 = {'A': [1, 2, 3],
         'B': [4, 5, 6]}
df1 = pd.DataFrame(data1)

data2 = {'A': [7, 8, 9],
         'B': [10, 11, 12]}
df2 = pd.DataFrame(data2)

result = df1.append(df2)
print(result)

运行结果如下:

   A   B
0  1   4
1  2   5
2  3   6
0  7  10
1  8  11
2  9  12

可以看到,append方法将df2添加到df1的末尾。

通过以上几种方法,可以实现对不同dataframe的合并操作,根据实际情况选择合适的方法会更加高效和灵活。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程