如何堆叠多个Pandas数据帧

  • Post category:Python

堆叠(stacking)是Pandas数据操作中常用且高效的技巧之一,可以将多个数据帧或序列中的数据合并成一个数据帧。在Pandas中,堆叠有两种方法:列堆叠(column stacking)和行堆叠(row stacking)。

列堆叠(column stacking)

列堆叠是将多个数据帧中的列合并成一个数据帧。

使用pd.concat()函数实现列堆叠:

import pandas as pd

# 创建数据帧1
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})

# 创建数据帧2
df2 = pd.DataFrame({'D': [10, 11, 12], 'E': [13, 14, 15], 'F': [16, 17, 18]})

# 列堆叠df1和df2
result = pd.concat([df1, df2], axis=1)

print(result)

输出结果如下:

   A  B  C   D   E   F
0  1  4  7  10  13  16
1  2  5  8  11  14  17
2  3  6  9  12  15  18

pd.concat()函数中,axis参数指定为1是表示沿着列堆叠。堆叠后的数据帧中,列的顺序是按照输入的多个数据帧中列名的先后顺序排序的。

行堆叠(row stacking)

行堆叠是将多个数据帧中的行合并成一个数据帧。

使用pd.concat()函数实现行堆叠:

import pandas as pd

# 创建数据帧1
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})

# 创建数据帧2
df2 = pd.DataFrame({'A': [10, 11, 12], 'B': [13, 14, 15], 'C': [16, 17, 18]})

# 行堆叠df1和df2
result = pd.concat([df1, df2], axis=0)

print(result)

输出结果如下:

    A   B   C
0   1   4   7
1   2   5   8
2   3   6   9
0  10  13  16
1  11  14  17
2  12  15  18

pd.concat()函数中,axis参数指定为0是表示沿着行堆叠。堆叠后的数据帧中,行的顺序是按照输入的多个数据帧的先后顺序排序的。

总结

在Pandas中,堆叠数据是一种常见且高效的操作。通过使用pd.concat()函数,可以方便地对多个数据帧进行列堆叠和行堆叠操作。在进行堆叠操作时,需要注意输入的数据帧中的索引和列名是否有重复,否则可能会出现不符合预期的结果。