我有一个如下的数据框
1320 A 2010 455
1325 B 2010 52
1336 A 2011 148
1341 B 2011 37
1352 A 2012 57
1357 B 2012 8
我想在同一年获得两组之间的差异,例如
1 2010 403
2 2011 111
3 2012 49
目前,我只是移动数据帧并进行减法,但显然它只适用于干净的格式化数据。我想知道如何通过检查年份和组ID
来获得减法方法答案 0 :(得分:1)
这将有效:
import numpy as np
import pandas as pd
df = pd.DataFrame()
df['group'] = ['A','B']*3
df['year'] = [2010,2010,2011,2011,2012,2012]
df['value'] = [455,52,148,37,57,8]
df.loc[df.group=='B','value']*=-1
dfNew = df.groupby('year').sum()
print dfNew
如果我们从 df 开始:
group year value
0 A 2010 455
1 B 2010 52
2 A 2011 148
3 B 2011 37
4 A 2012 57
5 B 2012 8
我们得到 dfNew :
value
year
2010 403
2011 111
2012 49