Commit c66ea45
authored
Copy receiver_data in autoimpute to avoid mutating caller's frame (#185)
autoimpute ended with
receiver_data[var] = median_imputations[var]
which could write through to the caller's original DataFrame depending
on whether intermediate pandas operations returned a copy or a view.
This is a silent side effect: the user's input frame would gain new
columns without any notification.
Take a defensive .copy() of receiver_data at the top of autoimpute so
the caller's frame is always preserved. The imputed columns are
returned exclusively via result.receiver_data.
Tests
- test_autoimpute_does_not_mutate_caller_receiver asserts that
receiver_data passed in remains pristine and the returned frame
carries the imputed column.1 parent 079403d commit c66ea45
3 files changed
Lines changed: 56 additions & 0 deletions
File tree
- changelog.d
- microimpute/comparisons
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
441 | 441 | | |
442 | 442 | | |
443 | 443 | | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
444 | 454 | | |
445 | 455 | | |
446 | 456 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
403 | 403 | | |
404 | 404 | | |
405 | 405 | | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
406 | 451 | | |
407 | 452 | | |
408 | 453 | | |
| |||
0 commit comments