Есть ли способ применить функцию к подкадрам данных, а не только к столбцам или строкам основных данных?
Например, если у меня есть
df = pd.DataFrame({'ID': [1,2,2,3,3], 'Valid':[0, 0, 0, 1, 1], 'Value':[10, 5, 10, 0, 10]})
, и я хочу, чтобы ожидаемый результат составил
out = pd.DataFrame({'ID':[1,2,3], 'Value':[0, 0, 10]})
, который суммирует все значения, действительные для идентификатора, тогда я хотел бы применить функцию
def calc(subDf):
'''
this is doing some inner calculations for the dataframe which is already grouped.
'''
output = subDf[subDf['Valid']].sum()
return output
Есть ли способ сделать это в виде df.groupby('ID').apply(calc)
?