BUG: Made SparseDataFrame.fillna() fill all NaNs
State: closed

 - [x] closes #16112 
 - [x] tests added / passed
 - [x] passes ``git diff upstream/master --name-only -- '*.py' | flake8 --diff``

The dia and dok format matrices seem to have other, unrelated bugs that prevent correct initialization. Therefore, they are excluded from tests in this commit. See #16177 and #16179.
I'm new to the codebase here, so any comments are greatly welcomed!

Labels:
name: Missing-data
description: np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate
name: Sparse
description: Sparse Data Type

Comments:
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=h1) Report
> Merging [#16178](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/5bc736c421ecb96e744ddf3261e50bf94ae5b6da?src=pr&el=desc) will **increase** coverage by `0.02%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/16178/graphs/tree.svg?width=650&token=eZ4WkYLtcO&height=150&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #16178      +/-   ##
==========================================
+ Coverage   90.86%   90.88%   +0.02%     
==========================================
  Files         162      162              
  Lines       50821    50821              
==========================================
+ Hits        46177    46189      +12     
+ Misses       4644     4632      -12
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `88.66% <100%> (+0.02%)` | :arrow_up: |
| #single | `40.33% <0%> (ø)` | :arrow_up: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/sparse/array.py](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvc3BhcnNlL2FycmF5LnB5) | `91.46% <100%> (ø)` | :arrow_up: |
| [pandas/plotting/\_converter.py](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=tree#diff-cGFuZGFzL3Bsb3R0aW5nL19jb252ZXJ0ZXIucHk=) | `65.35% <0%> (+1.81%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=footer). Last update [5bc736c...1043d30](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=h1) Report
> Merging [#16178](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/0ea0f25bfb920cd0f58872dc95913a7aa9c0c3da?src=pr&el=desc) will **decrease** coverage by `0.02%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/16178/graphs/tree.svg?src=pr&token=eZ4WkYLtcO&width=650&height=150)](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #16178      +/-   ##
==========================================
- Coverage   90.38%   90.36%   -0.03%     
==========================================
  Files         161      161              
  Lines       50916    50915       -1     
==========================================
- Hits        46021    46009      -12     
- Misses       4895     4906      +11
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `88.13% <100%> (-0.01%)` | :arrow_down: |
| #single | `40.22% <0%> (-0.11%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/sparse/array.py](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvc3BhcnNlL2FycmF5LnB5) | `91.44% <100%> (-0.03%)` | :arrow_down: |
| [pandas/io/gbq.py](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=tree#diff-cGFuZGFzL2lvL2dicS5weQ==) | `25% <0%> (-58.34%)` | :arrow_down: |
| [pandas/util/testing.py](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=tree#diff-cGFuZGFzL3V0aWwvdGVzdGluZy5weQ==) | `80.56% <0%> (-0.2%)` | :arrow_down: |
| [pandas/core/frame.py](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZnJhbWUucHk=) | `97.68% <0%> (-0.1%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=footer). Last update [0ea0f25...d6a4ade](https://codecov.io/gh/pandas-dev/pandas/pull/16178?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

we don't simply exclude failing things. better to actually xfail that format. then it becomes a known failure, which can later be picked up.
cc @kernc 
@jreback 
Thanks for pointing that out! Fixed the tests to xfail on the dia and dok matrix formats
Since the bugs for the other formats have been fixed, now solves for all sparse matrix formats
@jreback 
The original issue was an issue with instantiations from scipy.sparse matrices, and since SparseSeries cannot be instantiated from sparse matrices, I'm not exactly sure what you mean by tests for series (sorry if I'm misunderstanding something)
needs a note in whats new. 0.20.2 is ok.
Continued in https://github.com/pandas-dev/pandas/pull/16892.
superseded by #16892