Averaging over columns while ignoring zero entries
Mean /@ DeleteCases[Transpose@list, 0, All]
{2,3,3,4,4,3,9}
I'm posting this as a CW answer, so J.M.'s very nice answer, made in a comment above, gets recorded as a real answer.
list = {{1, 3, 4, 5, 6, 0, 9}, {4, 0, 3, 5, 0, 2, 0}, {1, 0, 2, 2, 2, 4, 0}};
Total[list]/Total[Unitize[list]]
{2, 3, 3, 4, 4, 3, 9}
Update
As J.M. points out in a comment below, there is more robust formulation that handles the cases where one or mort columns contain all zeros.
list = {{1, 3, 4, 5, 6, 0, 0}, {4, 0, 3, 5, 0, 2, 0}, {1, 0, 2, 2, 2, 4, 0}};
Total[list]/(Total[Unitize[list]] /. 0 -> 1)
{2, 3, 3, 4, 4, 3, 0}