Pandas 基于将列分组为一个数据透视表
Pandas pivot based on grouping columns as one
我有以下数据框:
Name Account Revenue 1 Revenue 2
John A Set-up 100.00 0.00
Peter K Slot 250.00 0.00
Michael S Set-up 0.00 25.00
我正在尝试使用 pandas 数据透视函数,因此我可以将 Account
值作为列,但将 Revenue 1
和 Revenue 2
加在一起。
df=df.pivot_table(data=df,index=['Name'],columns=['Account'])
但它正在返回以下数据框:
Revenue 1 Revenue 2
Name Set-up Slot Set-up
John 100.00 0.00 0.00
Peter K 0.00 250.00 0.00
Michael S 0.00 0.00 25.00
我想要的是将两种收入类型相加并显示在相同的帐户类型中,如下所示:
Name Set-up Slot
John 100.00 0.00
Peter K 0.00 250.00
Michael S 25.00 0.00
大家有什么想法吗?
您可以在旋转前对 Revenue
秒求和:
df['Revenue'] = df.filter(like='Revenue').sum(axis=1)
df=df.pivot_table(index='Name',
columns='Account',
values='Revenue',
fill_value=0,
aggfunc='sum')
print (df)
Account Set-up Slot
Name
John A 100 0
Michael S 25 0
Peter K 0 250
你的解决方案和 sum
旋转后:
df=df.pivot_table(index='Name',columns='Account',aggfunc='sum').groupby(level=1,axis=1).sum()
print (df)
Account Set-up Slot
Name
John A 100.0 0.0
Michael S 25.0 0.0
Peter K 0.0 250.0
我有以下数据框:
Name Account Revenue 1 Revenue 2
John A Set-up 100.00 0.00
Peter K Slot 250.00 0.00
Michael S Set-up 0.00 25.00
我正在尝试使用 pandas 数据透视函数,因此我可以将 Account
值作为列,但将 Revenue 1
和 Revenue 2
加在一起。
df=df.pivot_table(data=df,index=['Name'],columns=['Account'])
但它正在返回以下数据框:
Revenue 1 Revenue 2
Name Set-up Slot Set-up
John 100.00 0.00 0.00
Peter K 0.00 250.00 0.00
Michael S 0.00 0.00 25.00
我想要的是将两种收入类型相加并显示在相同的帐户类型中,如下所示:
Name Set-up Slot
John 100.00 0.00
Peter K 0.00 250.00
Michael S 25.00 0.00
大家有什么想法吗?
您可以在旋转前对 Revenue
秒求和:
df['Revenue'] = df.filter(like='Revenue').sum(axis=1)
df=df.pivot_table(index='Name',
columns='Account',
values='Revenue',
fill_value=0,
aggfunc='sum')
print (df)
Account Set-up Slot
Name
John A 100 0
Michael S 25 0
Peter K 0 250
你的解决方案和 sum
旋转后:
df=df.pivot_table(index='Name',columns='Account',aggfunc='sum').groupby(level=1,axis=1).sum()
print (df)
Account Set-up Slot
Name
John A 100.0 0.0
Michael S 25.0 0.0
Peter K 0.0 250.0