与this关于从条件计算DataFrame值的问题相关,我有一个更复杂的问题,即根据我正在努力解决的给定行的条件包含一个总和。这是最初的df:
Key UID VID count month option unit year
0 1 5 100 1 A 10 2015
1 1 5 200 1 B 20 2015
2 1 5 300 2 A 30 2015
3 1 5 400 2 B 40 2015
4 1 7 450 2 B 45 2015
5 1 5 500 3 B 50 2015
我希望遍历这个时间序列的DataFrame,添加一个列' unit_count'对于每行划分' unit'的值通过' count'的总和在那个月只有选项是' B'。基本上:
df['unit_count'] = df['unit'] / sum of df['count'] for all records containing 'option' 'B' in the same month
将DataFrame附加如下:
Key UID VID count month option unit year unit_count
0 1 5 100 1 A 10 2015 0.050
1 1 5 200 1 B 20 2015 0.100
2 1 5 300 2 A 30 2015 0.035
3 1 5 400 2 B 40 2015 0.047
4 1 7 450 2 B 45 2015 0.053
5 1 5 500 3 B 50 2015 0.100
上面示例df的代码是:
df = pd.DataFrame({'UID':[1,1,1,1,1,1],
'VID':[5,5,5,5,7,5],
'year':[2015,2015,2015,2015,2015,2015],
'month':[1,1,2,2,2,3],
'option':['A','B','A','B','B','B'],
'unit':[10,20,30,40,45,50],
'count':[100,200,300,400,450,500]
})