I'm building a machine learning model in Python to predict soccer player values. Consider the following feature columns of the dataframe:
[features]
---------------------------------
position | goals | goals_conceded
-------- |-------|---------------
Forward | 23 | NaN
Defender | 2 | NaN
Defender | 4 | NaN
Keeper | NaN | 20
Keeper | NaN | 43
Since keepers don't usually score goals, they'll almost always have null values in the "goals" column, but they still can have this statistic, so it would be fine to fill the NaNs with 0. On the other hand, since line players can't have "goals_conceded" stats, they'll also have null values in that column, but in this case, players will never have this statistic, since this is a keeper only stat. How do I build a machine learning model considering these two columns as features?
I thought about putting them together in one single column, but that can't happen since for a line player, the more goals he makes the better it is. For goalkeepers it's the opposite, the less goals he conceeds the better. I also can't fill the columns with zeros since it would affect the model prediction in the "goals_conceded" column for example, since 98% of the rows contain in line players info.
This happens with many of the columns in my dataframe, such as "clean sheets" (only Keepers will have this stat) and "shots at target" (only line players will have this stat). How do I deal with them?