我正在尝试将简单计算的结果附加到数据框中。我想对“年度”进行分组,然后计算“税收减税”以获得一组称为“净收入”的新记录。



import pandas as pd


data = {'year': [2010, 2011, 2012, 2011, 2012, 2010],
        'item': ['Revenue', 'Revenue', 'Revenue', 'Tax', 'Tax', 'Tax'],
        'value': [11, 8, 10, 3, 2, 3]}
dfRev = pd.DataFrame(data, columns=['year', 'item', 'value'])

print dfRev





   year     item  value
0  2010  Revenue     11
1  2011  Revenue      8
2  2012  Revenue     10
3  2011      Tax      3
4  2012      Tax      2
5  2010      Tax      3


我想这样添加到底部。

   year     item  value
0  2010  Revenue     11
1  2011  Revenue      8
2  2012  Revenue     10
3  2011      Tax      3
4  2012      Tax      2
5  2010      Tax      3
6  2010 Net Revenue   8
7  2011 Net Revenue   5
8  2012 Net Revenue   7


我的实际数据有更多标题,即原产地,产品,国家,项目,月份,值

我需要进行枢纽调整,以便按来源,产品,国家/地区,月份分组。然后将项目扔到列中,并将“值”作为值。

最佳答案

您可以尝试枢轴:

#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

关于python - 如何将计算应用于数据框中的分组行并将结果 append 到数据框的底部?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36722969/

10-09 08:21
查看更多