Python 熊猫:基于另一列将列拆分为较小的列';s值

Python 熊猫:基于另一列将列拆分为较小的列';s值,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据帧: import pandas df = pandas.DataFrame({'Status': ['Draft', 'Active','Completed','Completed', 'Draft', 'Active'], 'Region': ['Europe','Europe', 'Asia','Australia', 'Asia', 'Australia'],'Budget': [1000, 2000,3000,4000,5000,6000]}) 我

我有以下数据帧:

import pandas

df = pandas.DataFrame({'Status': ['Draft', 
   'Active','Completed','Completed', 'Draft', 'Active'], 'Region': 
   ['Europe','Europe', 'Asia','Australia', 'Asia', 'Australia'],'Budget': [1000,
   2000,3000,4000,5000,6000]})
我将其分组和汇总如下:

grouped_by_region = df.groupby('Region').agg({'Budget':sum})
因此,
print(按区域分组)
的输出为:

Region    Budget

Asia         8000
Australia   10000
Europe       3000
我要做的是将预算列拆分为“预算草案”、“预算活动”、“预算完成”列。因此,基本上我需要创建基于“Status”列值的新列,并相应地重命名它们


如何实现这一点?

IIUC,您只需将
状态添加到您的groupby并取消堆栈:

df.groupby(['Region', 'Status']).agg({'Budget':sum}).unstack(fill_value=0)

          Budget                
Status    Active Completed Draft
Region                          
Asia           0      3000  5000
Australia   6000      4000     0
Europe      2000         0  1000

尽管评论中提出的
pivot
解决方案在这种情况下同样有效

df.pivot\u表('Budget'、'Region'、'Status',np.sum)
请参见问题4的答案