英文:
Create a multi-level column pivot table in pandas
问题
你可以使用Python创建类似下面的多级列透视表:
从这个数据框开始:
| Date | Name | P&L | Percentage |
|2023.1.1 | Amy |1.1% | 2% |
| 2023.1.1 | Peter |1.2% | 3% |
生成如下透视表:
| Date | Amy | Peter |
| | P&L | Percentage | P&L | Percentage |
|2023.1.1 | 1.1%| 2% |1.2% | 3% |
以下是代码示例,可以帮助你创建这种多级列透视表:
import pandas as pd
# 创建数据框
data = {
'Date': ['2023.1.1', '2023.1.1'],
'Name': ['Amy', 'Peter'],
'P&L': ['1.1%', '1.2%'],
'Percentage': ['2%', '3%']
}
df = pd.DataFrame(data)
# 使用pivot方法创建透视表
result = df.pivot(index='Date', columns='Name', values=['P&L', 'Percentage'])
# 重新设置列的多级索引
result.columns = result.columns.map(lambda x: f'{x[1]}_{x[0]}')
# 重置列索引
result.reset_index(inplace=True)
# 输出透视表
print(result)
这将生成所需的多级列透视表。
英文:
How can I create the multi-level column pivot table like below using python?
from this data frame
| Date | Name | P&L | Percentage |
|2023.1.1 | Amy |1.1% | 2% |
| 2023.1.1 | Peter |1.2% | 3% |
To pivot table like this
| Date | Amy | Peter |
| | P&L |Percentage | P&L |Percentage |
|2023.1.1 | 1.1%| 2% |1.2% | 3% |
This is my previous code and seems doesn't work
result=df.pivot_table(index='Date',values=['P&L','Percentage'],columns='Name')
答案1
得分: 1
使用 pivot
在这里,因为你没有数值数据:
df.pivot(index='Date', values=['P&L','Percentage'], columns='Name')
或者使用带有 aggfunc='first'
的 pivot_table
:
df.pivot_table(index='Date', values=['P&L','Percentage'], columns='Name', aggfunc='first')
输出:
P&L Percentage
Name Amy Peter Amy Peter
Date
2023.1.1 1.1% 1.2% 2% 3%
英文:
Use pivot
here as you don't have numeric data:
df.pivot(index='Date',values=['P&L','Percentage'],columns='Name')
Or pivot_table
with aggfunc='first'
:
df.pivot_table(index='Date',values=['P&L','Percentage'],columns='Name',aggfunc='first')
Output:
P&L Percentage
Name Amy Peter Amy Peter
Date
2023.1.1 1.1% 1.2% 2% 3%
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论