Вы можете сначала изменить знаки вашего атрибута Amount_won_lost
, используя pd.DataFrame.apply()
Так для следующей строки:
df["Amount_won_lost"] = df.apply(lambda x: -x["Amount_won_lost"] \
if x["Won/Lost"] == "lost" else x["Amount_won_lost"], axis = 1)
Он заменит ваш столбец Amount_won_lost либоположительное или отрицательное значение в зависимости от того, выиграли они или проиграли.
И, используя функцию sum()
, упомянутую в других комментариях, вы можете получить сумму для Amount_won_lost для данного года и месяца.
Следующее выберет все значения при введенных вами значениях:
df[(df["Year"] == year_value) & (df["Month"] == month_value)]
Вывод будет следующим:
Race_Course HorseName Year Month Day Amount_won_lost Won/Lost
2 Sandown Beef of Salmon 2016 11 17 -20.0 lost
3 Ayr Corbiere 2016 11 3 -25.0 lost
8 Sandown Aldaniti 2016 11 17 -10.0 lost
print(df[(df["Year"] == year_value) & (df["Month"] == month_value)]["Amount_won_lost"].sum())
напечатает -55.0
.
Если вы хотели видеть суммы за каждый данный месяц в году, без использования пользовательских данных, функция groupby
- ваш лучший выбор!