Pandas是一个强大的Python数据分析库,其中stack()和unstack()是用于数据重塑的两个重要函数。
1. stack(): 这个函数的作用是将DataFrame的列转换为行。具体来说,它会将DataFrame的层次化索引的最外层(即最后一层)转换为行索引,而原始的行索引则变为层次化索引的一部分。这通常被称为“堆叠”或“拉长”数据。
例如,假设我们有一个如下所示的DataFrame:
```
A B
0 1 4
1 2 5
2 3 6
```
如果我们调用df.stack(),结果将是:
```
0 A 1
B 4
1 A 2
B 5
2 A 3
B 6
dtype: int64
```
可以看到,原来的列A和B现在变成了行索引的一部分。
2. unstack(): 这个函数的作用与stack()相反,它是将DataFrame的行转换为列。具体来说,它会将DataFrame的层次化索引的最内层(即第一层)转换为列索引,而原始的列索引则变为层次化索引的一部分。这通常被称为“展开”或“扁平化”数据。
例如,假设我们有一个如下的Series:
```
A 0 1
1 2
2 3
B 0 4
1 5
2 6
dtype: int64
```
如果我们调用s.unstack(),结果将是:
```
A B
0 1 4
1 2 5
2 3 6
```
可以看到,原来的行索引现在变成了列索引。
总的来说,stack()和unstack()是Pandas中非常有用的两个函数,它们可以帮助我们在不同的数据结构之间进行转换,以满足我们的分析需求。