我试图在数据框中附加简单计算的结果。我想分组年份,然后计算减税收入,以获得一组名为净收入的新记录。
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
我的实际数据有更多标题ieORIGIN,Product,Country,item,Month,Value
我需要进行透视,以便按ORIGIN,Product,Country,Month进行分组。然后将项目抛出到列,将值作为值抛出。
答案 0 :(得分:1)
你可以尝试一个支点:
#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