堆叠(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()
函数,可以方便地对多个数据帧进行列堆叠和行堆叠操作。在进行堆叠操作时,需要注意输入的数据帧中的索引和列名是否有重复,否则可能会出现不符合预期的结果。