Python 如何将计算应用于数据帧中的groupby行,并将结果附加到数据帧的底部?
我试图将一个简单计算的结果附加到一个数据帧中。我想按年度分组,然后计算收入减去税收,得到一组新的记录,称为净收入Python 如何将计算应用于数据帧中的groupby行,并将结果附加到数据帧的底部?,python,pandas,group-by,append,Python,Pandas,Group By,Append,我试图将一个简单计算的结果附加到一个数据帧中。我想按年度分组,然后计算收入减去税收,得到一组新的记录,称为净收入 将熊猫作为pd导入 数据={'year':[2010,2011,2012,2011,2012,2010], ‘项目’:[‘收入’、‘收入’、‘收入’、‘税收’、‘税收’、‘税收’], “值”:[11,8,10,3,2,3]} dfRev=pd.DataFrame(数据,列=['year','item','value']) 打印dfRev您可以尝试pivot: #reshape so
将熊猫作为pd导入
数据={'year':[2010,2011,2012,2011,2012,2010],
‘项目’:[‘收入’、‘收入’、‘收入’、‘税收’、‘税收’、‘税收’],
“值”:[11,8,10,3,2,3]}
dfRev=pd.DataFrame(数据,列=['year','item','value'])
打印dfRev
您可以尝试pivot:
#reshape so now you have a col for Tax and a col for Revenue
pivot = dfRev.pivot('year', 'item', 'value')
#perform the calculation
pivot.loc[:, 'Net Revenue'] = pivot.Revenue - pivot.Tax
#and then bring it back to the original shape
dfRev = pivot.stack().reset_index().sort_values(by='item')
print dfRev
year item 0
2 2010 Net Revenue 8
5 2011 Net Revenue 5
8 2012 Net Revenue 8
0 2010 Revenue 11
3 2011 Revenue 8
6 2012 Revenue 10
1 2010 Tax 3
4 2011 Tax 3
7 2012 Tax 2
我很难应用您的方法,因为我的实际文件中有多个列,很抱歉没有提供所有细节。所以我选择了pivot_table方法,这对我来说似乎更简单。另外,.sort_值(by='item')对我不起作用,所以我放弃了它,因为它不是必需的。pivot=pd.pivot_表(dfResultFinal,values='Value',index=['ORIGIN','Product','Country','Business','Existing','Month'],columns='measuredetail')在进行数据透视计算并尝试取消pivot后,我遇到了一个问题,即“Value”名称被删除并替换为0?任何想法。dfResultFinal=pivot.stack().reset_index()也许您可以发布实际数据的样本?看起来你想做比你原来的问题更多的事情。很难不看清楚你在说什么。