pandas的行和列转置
时间: 2024-12-06 16:03:29 浏览: 9
在pandas库中,对DataFrame进行行和列的转换是非常常见的操作。主要有两个方法来实现这个目的:
1. **转置(Transpose)**:
DataFrame的`transpose`或`.T`属性可以用来交换行和列的位置。假设有一个DataFrame `df`,你可以像下面这样转置它:
```python
transposed_df = df.T
```
这样,原DataFrame的索引成为新DataFrame的列名,原列名变成行索引。
2. **pivot_table** 或者 **stack/unstack**:
- `pivot_table`方法允许你基于特定的列对数据进行透视,创建一个新的DataFrame,其中原来的行变为主键,原来的列作为新变量轴。
```python
pivot_df = df.pivot(index='原始行索引', columns='原始列名', values='值列')
```
- 对于行和列的嵌套结构,可以使用`stack`和`unstack`方法。`stack`将列变为行,`unstack`则相反。它们通常配合`level`参数一起使用,指定要堆叠或展开的那一级。
```python
stacked_df = df.stack(level=0) # 根据第0级进行堆叠
unstacked_df = stacked_df.unstack()
```
其中,`level=0`表示按照第一级(通常是索引)堆叠或展开。
阅读全文