|
14 | 14 | import io
|
15 | 15 | import itertools
|
16 | 16 | from pathlib import Path
|
| 17 | +import re |
17 | 18 | import string
|
18 | 19 | import sys
|
19 | 20 | from typing import (
|
@@ -2570,6 +2571,121 @@ def test_types_replace() -> None:
|
2570 | 2571 | assert assert_type(df.replace(1, 2, inplace=True), None) is None
|
2571 | 2572 |
|
2572 | 2573 |
|
| 2574 | +def test_dataframe_replace() -> None: |
| 2575 | + df = pd.DataFrame({"col1": ["a", "ab", "ba"]}) |
| 2576 | + pattern = re.compile(r"^a.*") |
| 2577 | + check(assert_type(df.replace("a", "x"), pd.DataFrame), pd.DataFrame) |
| 2578 | + check(assert_type(df.replace(pattern, "x"), pd.DataFrame), pd.DataFrame) |
| 2579 | + check(assert_type(df.replace("a", "x", regex=True), pd.DataFrame), pd.DataFrame) |
| 2580 | + check(assert_type(df.replace(pattern, "x"), pd.DataFrame), pd.DataFrame) |
| 2581 | + check(assert_type(df.replace(regex="a", value="x"), pd.DataFrame), pd.DataFrame) |
| 2582 | + check(assert_type(df.replace(regex=pattern, value="x"), pd.DataFrame), pd.DataFrame) |
| 2583 | + |
| 2584 | + check(assert_type(df.replace(["a"], ["x"]), pd.DataFrame), pd.DataFrame) |
| 2585 | + check(assert_type(df.replace([pattern], ["x"]), pd.DataFrame), pd.DataFrame) |
| 2586 | + check(assert_type(df.replace(regex=["a"], value=["x"]), pd.DataFrame), pd.DataFrame) |
| 2587 | + check( |
| 2588 | + assert_type(df.replace(regex=[pattern], value=["x"]), pd.DataFrame), |
| 2589 | + pd.DataFrame, |
| 2590 | + ) |
| 2591 | + |
| 2592 | + check(assert_type(df.replace({"a": "x"}), pd.DataFrame), pd.DataFrame) |
| 2593 | + check(assert_type(df.replace({pattern: "x"}), pd.DataFrame), pd.DataFrame) |
| 2594 | + check(assert_type(df.replace(pd.Series({"a": "x"})), pd.DataFrame), pd.DataFrame) |
| 2595 | + check(assert_type(df.replace(regex={"a": "x"}), pd.DataFrame), pd.DataFrame) |
| 2596 | + check(assert_type(df.replace(regex={pattern: "x"}), pd.DataFrame), pd.DataFrame) |
| 2597 | + check( |
| 2598 | + assert_type(df.replace(regex=pd.Series({"a": "x"})), pd.DataFrame), pd.DataFrame |
| 2599 | + ) |
| 2600 | + |
| 2601 | + check( |
| 2602 | + assert_type(df.replace({"col1": "a"}, {"col1": "x"}), pd.DataFrame), |
| 2603 | + pd.DataFrame, |
| 2604 | + ) |
| 2605 | + check( |
| 2606 | + assert_type(df.replace({"col1": pattern}, {"col1": "x"}), pd.DataFrame), |
| 2607 | + pd.DataFrame, |
| 2608 | + ) |
| 2609 | + check( |
| 2610 | + assert_type( |
| 2611 | + df.replace(pd.Series({"col1": "a"}), pd.Series({"col1": "x"})), pd.DataFrame |
| 2612 | + ), |
| 2613 | + pd.DataFrame, |
| 2614 | + ) |
| 2615 | + check( |
| 2616 | + assert_type(df.replace(regex={"col1": "a"}, value={"col1": "x"}), pd.DataFrame), |
| 2617 | + pd.DataFrame, |
| 2618 | + ) |
| 2619 | + check( |
| 2620 | + assert_type( |
| 2621 | + df.replace(regex={"col1": pattern}, value={"col1": "x"}), pd.DataFrame |
| 2622 | + ), |
| 2623 | + pd.DataFrame, |
| 2624 | + ) |
| 2625 | + check( |
| 2626 | + assert_type( |
| 2627 | + df.replace(regex=pd.Series({"col1": "a"}), value=pd.Series({"col1": "x"})), |
| 2628 | + pd.DataFrame, |
| 2629 | + ), |
| 2630 | + pd.DataFrame, |
| 2631 | + ) |
| 2632 | + |
| 2633 | + check( |
| 2634 | + assert_type(df.replace({"col1": ["a"]}, {"col1": ["x"]}), pd.DataFrame), |
| 2635 | + pd.DataFrame, |
| 2636 | + ) |
| 2637 | + check( |
| 2638 | + assert_type(df.replace({"col1": [pattern]}, {"col1": ["x"]}), pd.DataFrame), |
| 2639 | + pd.DataFrame, |
| 2640 | + ) |
| 2641 | + check( |
| 2642 | + assert_type( |
| 2643 | + df.replace(pd.Series({"col1": ["a"]}), pd.Series({"col1": ["x"]})), |
| 2644 | + pd.DataFrame, |
| 2645 | + ), |
| 2646 | + pd.DataFrame, |
| 2647 | + ) |
| 2648 | + check( |
| 2649 | + assert_type( |
| 2650 | + df.replace(regex={"col1": ["a"]}, value={"col1": ["x"]}), pd.DataFrame |
| 2651 | + ), |
| 2652 | + pd.DataFrame, |
| 2653 | + ) |
| 2654 | + check( |
| 2655 | + assert_type( |
| 2656 | + df.replace(regex={"col1": [pattern]}, value={"col1": ["x"]}), pd.DataFrame |
| 2657 | + ), |
| 2658 | + pd.DataFrame, |
| 2659 | + ) |
| 2660 | + check( |
| 2661 | + assert_type( |
| 2662 | + df.replace( |
| 2663 | + regex=pd.Series({"col1": ["a"]}), value=pd.Series({"col1": ["x"]}) |
| 2664 | + ), |
| 2665 | + pd.DataFrame, |
| 2666 | + ), |
| 2667 | + pd.DataFrame, |
| 2668 | + ) |
| 2669 | + |
| 2670 | + check(assert_type(df.replace({"col1": {"a": "x"}}), pd.DataFrame), pd.DataFrame) |
| 2671 | + check(assert_type(df.replace({"col1": {pattern: "x"}}), pd.DataFrame), pd.DataFrame) |
| 2672 | + check( |
| 2673 | + assert_type(df.replace({"col1": pd.Series({"a": "x"})}), pd.DataFrame), |
| 2674 | + pd.DataFrame, |
| 2675 | + ) |
| 2676 | + check( |
| 2677 | + assert_type(df.replace(regex={"col1": {"a": "x"}}), pd.DataFrame), pd.DataFrame |
| 2678 | + ) |
| 2679 | + check( |
| 2680 | + assert_type(df.replace(regex={"col1": {pattern: "x"}}), pd.DataFrame), |
| 2681 | + pd.DataFrame, |
| 2682 | + ) |
| 2683 | + check( |
| 2684 | + assert_type(df.replace(regex={"col1": pd.Series({"a": "x"})}), pd.DataFrame), |
| 2685 | + pd.DataFrame, |
| 2686 | + ) |
| 2687 | + |
| 2688 | + |
2573 | 2689 | def test_loop_dataframe() -> None:
|
2574 | 2690 | # GH 70
|
2575 | 2691 | df = pd.DataFrame({"x": [1, 2, 3]})
|
|
0 commit comments