Я пытаюсь суммировать все value
где date1
соответствует date2
для каждой строки в моей dataframe, который похож на этот question.Условные суммы на основе другого значения столбца DataFrame
id value date1 date2 sum
A 150 4/8/2014 3/8/2014 nan
B 100 5/8/2014 2/8/2014 nan
B 200 7/8/2014 5/8/2014 100
A 200 4/8/2014 3/8/2014 nan
A 300 6/8/2014 4/8/2014 350
Я попытался следующие, но получаю «Длины должны соответствовать сравнивать» ошибку.
grp = df.groupby('id')
df['sum'] = grp.apply(lambda x: x[x['date1'] == df['date2'].values]['value'].sum())
Поблагодарили бы за любые советы!
Проблема с: 'х [ 'date1' ] == df ['date2'] ', серия имеет разную длину. – jezrael
IIUC не дает вам то, что вы хотите: 'df1 = df.set_index ('id') df1.loc [df1 ['date1']. Isin (df1 ['date2']), 'value'] .sum (уровень = 0) '? – EdChum