피벗 테이블로 변환해야하는 데이터 프레임이 있습니다. 문제 없어. Pandas는 피벗 테이블을 제공하지만 피벗 테이블을 만들 수는 있지만 Excel의 일부 기능은 복제 할 수 없습니다.groupby와 pivot_table에서 피벗 테이블이 Excel처럼 보이도록하는 방법
어느 것? 중반 방법 집계 (division_sac_ac
에서 볼 수있는 총 금액)와 내가 3 (피벗, slice_ac, slice_sac) 오브젝트를 통합 할 수있는 방법
slice_ac = df.groupby(by='ac').sum()
slice_sac = df.groupby(by='sac').sum()
을 통해 얻은? 얻을 수있는
table_df = pd.pivot_table(df, index=['ac','sac'], values='value', columns=['name'], aggfunc=[np.sum], margins=True)
print(table_df.stack(['name']))
:
을 - :편집 부분적인 결과 만 여전히 만족스럽지 (일반적으로 모두의 aestetichs 마일 떨어진 엑셀에서이다 부분 나는 slice_sac
통합 아니라 slice_ac
수 있기 때문에)
sum ac sac name bond Corp omega 0.05 All 0.05 Govt lambda 0.05 rho 0.20 All 0.25 equity Europe alfa 0.05 beta 0.05 gamma 0.10 All 0.20 US epsilon 0.20 All 0.20 All alfa 0.05 beta 0.05 epsilon 0.20 gamma 0.10 lambda 0.05 omega 0.05 rho 0.20 All 0.70
예 :
import pandas as pd
import numpy as np
division_sac_ac = {'equity': ['Europe', 'US'], 'bond': ['Corp', 'Govt']}
df = pd.DataFrame.from_dict({'record_1': ['alfa', 'Europe', 'equity', 0.05],
'record_2': ['beta', 'Europe', 'equity', 0.05],
'record_3': ['gamma', 'Europe', 'equity', 0.1],
'record_4': ['epsilon', 'US', 'equity', 0.2],
'record_5': ['rho', 'Govt', 'bond', 0.2],
'record_6': ['lambda', 'Govt', 'bond', 0.05],
'record_7': ['omega', 'Corp', 'bond', 0.05], }, orient='index')
df.columns = ['name', 'sac', 'ac', 'value']
table_df = pd.pivot_table(df, index=['ac','sac','name'], values='value', aggfunc=[np.sum])
slice_ac = df.groupby(by='ac').sum()
slice_sac = df.groupby(by='sac').sum()
print(table_df)
print(slice_ac)
print(slice_sac)
, table_df
는 일을하지만,이 그림과 같이 나 또한 중도 결과를 통합 (slice_ac, slice_sac
)를 싶습니다 내 출력은 더 같다
반면 :
sum
ac sac name
bond Corp omega 0.05
Govt lambda 0.05
rho 0.20
equity Europe alfa 0.05
beta 0.05
gamma 0.10
US epsilon 0.20
value
ac
bond 0.3
equity 0.4
value
sac
Corp 0.05
Europe 0.20
Govt 0.25
US 0.20
우수한! 고맙습니다 – Asher11