pandas中的行列转换
时间: 2023-12-30 21:24:08 浏览: 84
以下是几种在pandas中进行行列转换的方法:
1. 使用explode函数进行纵向扩展(多行)
```python
df = pd.DataFrame({'col': [['a', 'b'], ['c', 'd', 'e']]})
df = df.explode('col')
print(df)
```
2. 使用str.split函数进行横向扩展(多列)
```python
df = pd.DataFrame({'col': ['a,b', 'c,d,e']})
df[['col1', 'col2', 'col3']] = df['col'].str.split(',', expand=True)
print(df)
```
3. 使用pivot函数进行行转列(某些字段值转换为表头)
```python
df = pd.DataFrame({'A': ['foo', 'foo', 'bar', 'bar'],
'B': ['one', 'two', 'one', 'two'],
'C': [1, 2, 3, 4]})
df = df.pivot(index='A', columns='B', values='C')
print(df)
```
4. 使用melt函数进行列转行(部分列名转换为一列数据值)
```python
df = pd.DataFrame({'A': ['foo', 'bar'],
'B': [1, 2],
'C': [3, 4]})
df = df.melt(id_vars='A', value_vars=['B', 'C'], var_name='Variable', value_name='Value')
print(df)
```
5. 使用lreshape函数进行多列合并两列(列合并)
```python
df = pd.DataFrame({'A': [1, 2],
'B': [3, 4],
'C': [5, 6],
'D': [7, 8]})
df = pd.lreshape(df, {'X': ['A', 'B'], 'Y': ['C', 'D']})
print(df)
```
阅读全文