pandas的pivot
时间: 2024-03-26 21:33:06 浏览: 65
pandas.DataFrame的pivot()和unstack()实现行转列
Pandas中的pivot操作可以用于将长表格转换为表格,或者将宽表格转换为长表格。下面是两个示例代码来演示pivot的用法:
1. 将长表格转换为宽表格[^1]:
```python
import pandas as pd
import openpyxl
# 读取长表格数据
path = r'C:\Users\Admin\Desktop\长表.xlsx'
wb = openpyxl.load_workbook(path)
sheet = wb['Sheet1']
sheet.insert_rows(0) # 在0行之前插入一行,因为dataframe会把第一行变成索引
wb.save(path)
data1 = pd.read_excel(path)
# 创建DataFrame并重命名列名
df = pd.DataFrame(data1, index=None)
df.columns = ['列1', '列2', '列3']
# 使用pivot进行转换
pivoted = df.pivot('列1', '列2', '列3')
pivoted.to_excel(r'C:\Users\Admin\Desktop\宽表.xlsx')
```
2. 将宽表格转换为长表格:
```python
import pandas as pd
import openpyxl
# 读取宽表格数据
path = r'C:\Users\Admin\Desktop\宽表.xlsx'
data1 = pd.read_excel(path)
# 创建DataFrame并指定列名作为标识符
df = pd.DataFrame(data1, index=None)
melted = pd.melt(df, ['列1'])
# 将转换后的数据保存为长表格
melted.to_excel(r'C:\Users\Admin\Desktop\长表.xlsx')
```
阅读全文