df_vin1_out = df_vin1.pivot_table(index = features, columns = 'MOB', values = ['VINTAGE1','剩余本金']) df_vin1_out = df_vin1_out.rename_axis(None, axis=1).reset_index() df_vin1_out Must pass list-like as `names`.
时间: 2024-04-14 12:29:46 浏览: 185
抱歉,我之前给出的回答有误。在使用`rename_axis`函数时,需要将表头名称作为一个列表传递给`names`参数。以下是修正后的代码示例:
```python
import pandas as pd
# 创建示例数据
data = {
'features': ['A', 'A', 'B', 'B'],
'MOB': [1, 2, 1, 2],
'VINTAGE1': [10, 20, 30, 40],
'剩余本金': [100, 200, 300, 400]
}
df_vin1 = pd.DataFrame(data)
# 创建数据透视表
df_vin1_out = df_vin1.pivot_table(index='features', columns='MOB', values=['VINTAGE1', '剩余本金'])
# 设置表头
df_vin1_out.columns = df_vin1_out.columns.map('{0[0]}_{0[1]}'.format)
# 重置索引
df_vin1_out = df_vin1_out.reset_index()
print(df_vin1_out)
```
这样可以将表头保持在一行上。输出结果类似于以下格式:
```
features VINTAGE1_1 VINTAGE1_2 剩余本金_1 剩余本金_2
0 A 10 20 100 200
1 B 30 40 300 400
```
希望这次能够解决你的问题。
阅读全文